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

数组索引
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),)'''
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页