numpy中一些实用的方法

import numpy as np
w=np.array([546,12,3,456,45,12])
wb = np.argsort(w)   
#值最小的数据的索引为2,最大的为索引为0的数据,按照升序进行排序索引
print(wb)
wc=w[wb[:4]]   #得到最小的四个数据的具体值
print(wc)
print(np.bincount(wc)) #统计每个数字的个数,例如索引为0的位置表示0出现的次数
print(np.argmax(np.bincount(wc)))  #argmax给出最大值的索引,因为bincount正好是每个点的数字与索引对应

上面对应的输出结果为

[2 1 5 4 3 0]
[ 3 12 12 45]
[0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 1]
12

np.array类型的数据中可以传入一个列表,这个列表中每个值都代表一个索引,所以可以使用一个变量里面传入一个列表获得每个索引位置的点,但是对于列表类型的数据不能这样,会报错

TypeError: list indices must be integers or slices, not list
dist = np.array([[12,45,63,45],
                [15,445,4,45],
                [452,45,54,425],
                [124,455,63,45],
                [12,45,243,45]])
c_ind = np.argmin(dist,axis=1)
print(type(c_ind))
c_in = [0,2, 1, 3, 0]
print(c_ind)
x_new = x[:5]
print(x_new)
print(x_new[c_ind==0])
#只有ndarry类型才可以这样操作,找到x_ind=0值的索引位置,把得到的值当做x_new的索引进行取值
print(x_new[c_in==2])

输出的结果为:

<class 'numpy.ndarray'>
[0 2 1 3 0]
[[ 3.93109126 -3.86427967]
 [10.10268877  3.99643886]
 [ 3.9499022  -2.26538468]
 [-4.92854709  2.07922709]
 [ 5.14252182 -1.95119219]]
[[ 3.93109126 -3.86427967]
 [ 5.14252182 -1.95119219]]
[]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值