arr1 = np.array([[(1000, 1001, 1002, 1003), (1010, 1011, 1012, 1013), (1020, 1021, 1022, 1023)],
[(1100, 1101, 1102, 1103), (1110, 1111, 1112, 1113), (1120, 1121, 1122, 1123)]], dtype='int')
(1) 根据坐标访问元素或内容,更改访问的内容,array也会更改。“:” 表示访问当前维度所有内容
a1 = arr1[1, 0, 2]
arr1[1, 1, 2] = 0
print(arr1)
a3 = arr1[1, :]
a4 = arr1[1, :, 2]
(2)切片
基本格式:[start_index: stop_index: step]
默认值:如果省略 start_index,则默认从数组的第一个元素开始;如果省略 stop_index,则默认到数组的最后一个元素结束;如果省略 step,则默认步长为1。所以 : 或者 :: 表示访问当前维度所有内容
负数索引:负数索引表示从数组的末尾开始计数。例如,-1 是数组的最后一个元素。
超出范围:如果 start_index 或 stop_index 超出了数组的范围,NumPy 会自动调整到有效的索引范围内。
步长:步长为正数时,数组从左到右进行切片;步长为负数时,数组从右到左进行切片。
多维数组:在多维数组中,你可以使用逗号分隔不同的维度来指定每个维度的切片。
a5 = arr1[: 1]
a6 = arr1[1, ::, :: 2]
根据负数步长的特性切片操作可以用来对array进行指定维度上的逆序操作
a7 = arr1[::, ::-1, ::-1]
(3)聚合函数
NumPy 提供了一系列的聚合函数,这些函数可以对数组中的数据执行计算并返回单个值。以下是一些常用的 NumPy 聚合函数:
np.sum():计算数组中所有元素的和。
np.prod():计算数组中所有元素的乘积。
np.mean():计算数组中所有元素的算术平均值。
np.std():计算数组中所有元素的标准差。
np.var():计算数组中所有元素的方差。
np.min():找出数组中的最小值。
np.max():找出数组中的最大值。
np.argmin():返回数组中最小元素的索引。#如果传参是多维数据,则将array转化为向量,再获取最小值的索引
np.argmax():返回数组中最大元素的索引。#如果传参是多维数据,则将array转化为向量,再获取最大值的索引
np.median():计算数组中的中位数。
np.percentile():计算数组中给定百分比的百分位数。
np.any():如果数组中有任何元素为真(True),则返回 True。
np.all():如果数组中所有元素都为真(True),则返回 True。
这些函数可以应用于整个数组,也可以沿着数组的指定轴(维度)进行操作。
def sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue, initial=np._NoValue, where=np._NoValue)
参数axis: 轴,接受array的维度,代表以那个维度为轴,可以理解为聚合完成后这个轴的维度没有了,被聚合了,
axis默认值为None,将求出所有元素的和,
如果给axis传负数则:-1 -> -n ==> 最内层维度 -> 最外层维度 ,相当于 n-1 -> n-2 ->... 0
适用于其他聚合函数的axis参数。
arr2 = np.array([(1, 2, 2, 1), (1, 2, 3, 1), (3, 1, 2, 1), (0, 2, 2, 3), (1, 0, 3, 1)])
arr_sum = np.sum(arr2)
arr_sum1 = np.sum(arr2, axis=0)
arr_sum2 = np.sum(arr2, axis=1)
arr_sum3 = np.sum(arr1, axis=2)
arr_sum4 = np.sum(arr1, axis=(1, 2)) # 1维和0维作为轴
arr_sum5 = np.sum(arr1, axis=-1)
其他聚合函数
arr_max1 = np.prod(arr1, axis=0)
arr_mean1 = np.mean(arr1, axis=0)
arr_max1 = np.max(arr1, axis=-1)
arr_index = np.argmax(arr1)
arr_all = np.all(arr2, axis=1)