Numpy学习笔记(八)数组索引与切片

这篇博客深入介绍了NumPy库中的数组索引、切片、排序和搜索计数等基本操作。通过示例展示了如何获取数组特定索引的值、进行二维数组切片以及如何对数组进行排序,并探讨了搜索最大最小值、非零元素索引及计数的方法。这些内容对于理解和运用NumPy处理数据至关重要。
摘要由CSDN通过智能技术生成
数组索引
import numpy as np

#TODO 1 数组索引

a = np.arange(10)  # 生成一维数组 0-9
print(a)
'''[0 1 2 3 4 5 6 7 8 9]'''
print(a[1]) #获取索引值为 1 的数据。
'''1'''
print(a[[1, 2, 3]]) #获取索引值为 1,2,3 的数据。
'''[1 2 3]'''

a = np.arange(20).reshape(4, 5) #生成4行5列二维数组
print(a)
'''
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]'''
print(a[1,2]) #获取第二行,第三列的数据
'''7'''
#比较与列表的区别
b=a.tolist()
print(b[1][2])#获取第二行,第三列的数据
'''7'''

数组切片
'和list 切片操作是一样的,[起始索引:截至索引:步长]'
import numpy as np

a = np.arange(10) #一维
print(a)
'''[0 1 2 3 4 5 6 7 8 9]'''
print(a[1:5])
'''[1 2 3 4]'''
print(a[0:-1:2])
'''[0 2 4 6 8]'''

a = np.arange(20).reshape(4, 5)#二维
print(a)
'''
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]'''
print(a[0:3, 2:4]) #(行切片,列切片)
'''
[[ 2  3]
 [ 7  8]
 [12 13]]
'''
排序
"""
numpy.sort方法对多维数组元素进行排序。其方法为:
    numpy.sort(a, axis=-1, kind='quicksort', order=None)
    a:数组。
    axis:要排序的轴。如果为None,则在排序之前将数组铺平。默认值为 -1,沿最后一个轴排序。
    kind:{'quicksort','mergesort','heapsort'},排序算法。默认值为 quicksort


numpy.lexsort(keys ,axis):使用多个键进行间接排序。
numpy.argsort(a ,axis,kind,order):沿给定轴执行间接排序。
numpy.msort(a):沿第 1 个轴排序。
numpy.sort_complex(a):针对复数排序。
"""
import numpy as np
a = np.random.rand(20).reshape(4, 5)
# print(a)
print(np.sort(a))
'''
[[0.16084851 0.46068528 0.54154642 0.919661   0.94382193]
 [0.11625906 0.26092216 0.40612362 0.69805412 0.92098232]
 [0.65406008 0.66565906 0.70732966 0.77505101 0.97876487]
 [0.11915551 0.50262157 0.58882585 0.72087149 0.82008241]]
'''

搜索与计数
'''
argmax(a ,axis,out):返回数组中指定轴的最大值的索引。
nanargmax(a ,axis):返回数组中指定轴的最大值的索引,忽略 NaN。
argmin(a ,axis,out):返回数组中指定轴的最小值的索引。
nanargmin(a ,axis):返回数组中指定轴的最小值的索引,忽略 NaN。
argwhere(a):返回数组中非 0 元素的索引,按元素分组。
nonzero(a):返回数组中非 0 元素的索引。
flatnonzero(a):返回数组中非 0 元素的索引,并铺平。
where(条件,x,y):根据指定条件,从指定行、列返回元素。
searchsorted(a,v ,side,sorter):查找要插入元素以维持顺序的索引。
extract(condition,arr):返回满足某些条件的数组的元素。
count_nonzero(a):计算数组中非 0 元素的数量。
'''
import numpy as np
a = np.random.randint(0, 10, 20)
print(a)
'''[4 2 0 9 4 6 2 6 5 6 9 9 5 5 8 8 7 9 2 7]'''
print(np.argmax(a)) #返回最大值的索引
'''3'''
print(np.argmin(a)) #返回最小值的索引
'''2'''
print(np.nonzero(a)) #返回不为0的索引
'''(array([ 0,  1,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
       18, 19], dtype=int64),)'''
print(np.count_nonzero(a))#返回不为0的数目
'''19'''
print(np.extract(a>3,a)) #返回a中元素大于3的数组
'''[4 9 4 6 6 5 6 9 9 5 5 8 8 7 9 7]'''
print(np.where(a>5)) #返回a中元素大于5所在的索引
'''(array([ 3,  5,  7,  9, 10, 11, 14, 15, 16, 17, 19], dtype=int64),)'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jia666666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值