1. 数组索引
- 一维:假设有a=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
-
a[1] // 1
a[[1, 2, 3]] // array([1, 2, 3])
- 二维:假设有a=
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
-
a[1,2] 或者 a[1][2] // 7
# 注意:若是python的list类型正确语法只能是a[1][2]
a[[1, 2], [3, 4]] // 获取a[1,3]和a[2,4]的值:array([ 8, 14])
- 三维:假设有a=
array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14]],
[[15, 16, 17],
[18, 19, 20],
[21, 22, 23],
[24, 25, 26],
[27, 28, 29]]])
-
a[[0, 1], [1, 2], [1, 2]] // 获取a[0,1,1]和a[1,2,2]的值:array([ 4, 23])
2. 数组切片:与python的list切片操作是一样的
Ndarray[start:stop:step]:[start:stop:step] 分别代表 [起始索引:截至索引:步长]
列如 a[:, ::2]:按步长为 2 取所有列和所有行的数据
当超过 3 维或更多维时,用 2 维数据的切片方式类推即可。
example:
a=
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
a[0:3, 2:4]=
array([[ 2, 3],
[ 7, 8],
[12, 13]])
3. 排序
numpy.sort(a, axis=-1, kind='quicksort', order=None)
○ 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):针对复数排序。
4. 搜索和计数
○ 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 元素的数量。