这一部分主要内容有:
- 对数组缺失值的一些处理
- numpy.unique()函数
- 一些统计函数的使用
找出数组中的缺失值的总数以及所在的位置
首先创建一个含有缺失值的数组在进行处理:
a = np.random.rand(10, 10)
#首先创建数组
a[np.random.randint(10, size=5), np.random.randint(10, size=5)] = np.nan
#随机指定数组中的五个位置为缺失值
print('Array a:')
print(a)
print('Result:')
#计算缺失值的总数
print(np.isnan(a).sum())
#返回缺失值的位置
print(np.where(np.isnan(a)))
输出:
Array a:
[[0.31083684 0.91010211 0.04155175 0.39559228 0.5232661 0.55171089
0.38759503 0.18378685 0.10009486 0.52620333]
[0.0010178 0.94765918 0.51306455 0.48942569 0.90026993 0.14719501
0.93473118 0.13998178 0.14924952 0.39719853]
[0.40373739 0.57648616 0.83931134 0.59873777 0.18590857 0.32391626
0.38614168 0.9713498 nan 0.95889986]
[0.1717263 0.71885529 0.70497483 0.81978594 0.02236966 0.79265399
0.73746451 0.93370094 0.84984392 0.11840724]
[0.19580231 0.10166299 0.80148874 0.33659768 0.98157772 0.28165397
0.7584942 0.19303689 0.46656634 nan]
[0.93393161 0.07945731 0.67380011 0.85559426 0.66762445 0.83854581
nan 0.27080165 0.55020945 0.44349568]
[0.66901709 0.20291176 nan 0.88576954 0.20965868 0.12452639
0.30308387 0.10114764 0.16775824 0.16670271]
[0.68666214 0.80949253 0.67494937 0.64263024 0.46793965 0.03839704
0.22540187 0.50151825 0.24351516 0.8102747 ]
[0.02620325 0.77708875 0.3448256 0.02586994 0.94095425 0.03868308
0.07316849 0.61268636 0.41412048 0.96585309]
[0.49981582 0.54435733 0.09576101 0.80670774 0.80234424 0.90126886
0.53148287 nan 0.71743648 0.04258146]]
Result:
5
(array([2, 4, 5, 6, 9], dtype=int64), array([8, 9, 6, 2, 7], dtype=int64))
从随机数组中删除包含缺失值的行
答案中给的方式没搞懂(汗…)附上自己的答案,就在于delete函数的使用:
对于numpy.delete()函数:
调用格式:numpy.delete(array, index, axis)
- array:就是要进行删除操作的数组
- index:可以是一个值,表示删除某一行(列),也可以传入一个列表,表示删除多行
- axis:这个参数就跟之前一个意思,指定删除的是行或者列,axis=0表示行,axis=1表示列
a = np.random.rand(5,5)
a[np.random.randint(1, 5, 3), np.random.randint(1, 5, 3)] = np.nan
print('Array a:')
print(a)
#a[np.sum(np.isnan(a), axis=1) == 0]
a = np.delete(a, np.where(np.isnan(a))[0], axis=0)
print('Result:')
print(a)
输出:
Array a:
[[7.68869910e-01 5.93522024e-01 1.74886116e-01 3.20411298e-01
9.65866122e-01]
[2.81333529e-01 5.01416814e-01 1.09475874e-01 nan
1.47391379e-01]
[7.45582548e-01 nan 4.07239843e-01 3.58272081e-01
1.09239464e-01]
[1.94400883e-01 1.03118456e-01 4.27904384e-01 nan
9.25303679e-01]
[4.06984125e-04 5.16657702e-01 2.07785888e-01 8.62155280e-01
4.88154880e-01]]
Result:
[[7.68869910e-01 5.93522024e-01 1.74886116e-01 3.20411298e-01
9.65866122e-01]
[4.06984125e-04 5.16657702e-01 2.07785888e-01 8.62155280e-01
4.88154880e-01]]
统计随机数组中个元素的数量
使用的numpy.unique()函数,这个函数我们一般用于剔除数组中的重复元素,并返回一个排好序的数组。
a = np.random.randint(1, 10, 5)
print('Array A:')
print(a)
print('Result:')
print(np.unique(a, return_counts = True))
输出:
Array A:
[4 7 1 7 1]
Result:
(array([1, 4, 7]), array([2, 1, 2], dtype=int64))
返回的第一个数组是原来数组的值,后一个数组则是每个元素对应的计数值。
将数组中个元素按指定的分类转换为文本值
首先建立一个字典,然后按照列表解析的方式对遍历数组即可
a = np.random.randint(1, 4, 5)
label_map = {1:'汽车',2:'火车',3:'自行车'}
b = [label_map[i] for i in a]
print('Array A:')
print(a)
print('Resutl:')
print(b)
输出:
Array A:
[3 2 2 1 2]
Resutl:
['自行车', '火车', '火车', '汽车', '火车']
将多个1维数组拼合为单个Narray
a = np.random.randint(1, 10, 5)
b = np.random.randint(1, 10, 5)
c = np.random.randint(1, 10, 4)
d = np.array([a, b, c])
print(d)
print(np.concatenate(d))
输出:
[array([5, 7, 1, 6, 7]) array([1, 9, 6, 4, 3]) array([4, 5, 4, 6])]
[5 7 1 6 7 1 9 6 4 3 4 5 4 6]
打印数组中个元素在升序排序中的索引数组
对数组的索引进行操作的函数基本都是arg打头的:
a = np.random.randint(1, 10, 5)
print('Array a:')
print(a)
print('Result:')
print(a.argsort())
输出:
Array a:
[3 2 7 7 3]
Result:
[1 0 4 2 3]
输出二位随机数组的各行的最大值
a = np.random.randint(1, 10, (3,3))
print('Array a:')
print(a)
print('Result:')
print(np.max(a, axis=1))
输出:
Array a:
[[7 2 6]
[1 4 1]
[4 2 9]]
Result:
[7 4 9]
计算两个数之间的欧式距离
其实就是我们通常所说的两点之间的距离公式:
pa = np.array([1,2])
pb = np.array([3,4])
dis = np.sqrt(np.power((pb[0]-pa[0]),2) + np.power((pb[1]-pa[1]),2))
print(dis)
输出:
2.8284271247461903
打印复数的实部以及虚部
a = np.array([1+2j, 3+4j, 5+6j])
print(a.real)
print(a.imag)
输出:
[1. 3. 5.]
[2. 4. 6.]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116745.html