numpy常用指令

这篇博客介绍了NumPy库中的一些基本但实用的操作,包括:查找非零索引、数组倒序、获取最大/小值索引、计算交集、矩阵归一化、取整数部分、设置数组只读、折叠显示、找到最接近特定值的元素索引以及打印数组元素坐标和值。此外,还展示了如何对数组进行排序和统计数值频率。
摘要由CSDN通过智能技术生成
1、查找数组中不为0的索引
data = np.array([1,2,5,0,8,6,0,0,0,9,1])
np.nonzero(data)
#(array([ 0,  1,  2,  4,  5,  9, 10], dtype=int64),)
2、创建一个数组,并将其倒序排列
arr1 = np.arange(10)
arr1
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr2 = arr1[::-1]
arr2
# array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
3、查看最大/小值在元组坐标中的索引
np.unravel_index(arr.argmax(),(5,5))  # 最大值的索引,矩阵大小
# (4, 2)
np.unravel_index(arr.argmin(),(5,5))
# (3, 4)
4、求两个随机数组的交集
arr1 = np.random.randint(20,size=10)
# array([16,  7,  6, 10,  6,  2,  5,  1,  6,  1])
arr2 = np.random.randint(20,size=10)
# array([11,  8, 10,  3,  9,  6, 14, 16,  9, 16])
# 求取两个数组的交集
np.intersect1d(arr1,arr2)
# array([ 6, 10, 16])
5、对矩阵进行归一化处理
arr = np.random.randint(5,40,(5,5))
arr_min = arr.min()
arr_max = arr.max()
arr1 = (arr-arr_min)/(arr_max-arr_min)

array([[0.84375, 0.96875, 0.03125, 1.     , 0.09375],
       [0.09375, 0.28125, 0.59375, 0.65625, 0.     ],
       [0.28125, 0.03125, 0.96875, 0.4375 , 0.3125 ],
       [0.59375, 0.34375, 0.     , 0.25   , 0.5    ],
       [0.3125 , 0.34375, 0.625  , 0.90625, 1.     ]])
6、获取一个数的整数部分
arr = np.random.uniform(30,size=10)
arr1 = np.floor(arr)  # 向下取整
# array([25., 28., 21., 15., 26.,  3., 23., 15.,  9.,  4.])
arr2 = np.ceil(arr)   # 向上取整
# array([26., 29., 22., 16., 27.,  4., 24., 16., 10.,  5.])
7、设置数组只读
arr.flags.writeable=False
8、设置折叠显示
np.set_printoptions(threshold=5) # 折叠显示
arr = np.ones((7,7))
array([[1., 1., 1., ..., 1., 1., 1.],
       [1., 1., 1., ..., 1., 1., 1.],
       [1., 1., 1., ..., 1., 1., 1.],
       ...,
       [1., 1., 1., ..., 1., 1., 1.],
       [1., 1., 1., ..., 1., 1., 1.],
       [1., 1., 1., ..., 1., 1., 1.]])
9、获取一个数组中最接近某个数字的元素的索引
arr = np.random.uniform(1,50,(5*5))
index = (np.abs(arr-30)).argmin()
np.unravel_index(index,(5,5))
10、打印数组元素的坐标位置和数值
arr = np.arange(0,9).reshape(3,3)
for index,value in np.ndenumerate(arr):
    print(index,value)
(0, 0) 0
(0, 1) 1
(0, 2) 2
(1, 0) 3
(1, 1) 4
(1, 2) 5
(2, 0) 6
(2, 1) 7
(2, 2) 8
11、数组按照某一列排序
arr = np.random.randint(5,30,(5,5))
arr[arr[:,1].argsort()]
12、统计数组中每个数值出现的次数
arr = np.array([1,1,1,3,3,5,7,8,9,9,9,0])
np.bincount(arr)
# array([1, 3, 0, ..., 1, 1, 3], dtype=int64)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值