9\1 numpy基础(二)
(一)基本的索引与切片 p91
可对ndarray进行切片
可对切片整体进行赋值
注:对列表切片进行整体赋值会报错
arr = np.array([1, 2, 3, 4]) arr[1: 3] = 12 print(arr) #[1, 12, 12, 4]
高维数组的索引:
例:二维
arr[0][2] == arr[0,2]
注:仅数组可使用逗号形式,列表等类型必须使用前者
切片索引,可进行多重切片:p94
arr[0:2, :1]
要注意区分切片索引与一般索引
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) print(arr[1, 3]) #8 print(arr[1, :3]) #[5, 6, 7]
(二)布尔型索引 p96
对一个字符型数组和一个字符串使用比较运算符 == 可获得一个布尔型数组
可以使用 ~对布尔型数组取反
多个布尔条件组合使用&或者|
(三)花式索引
(四)数组转置和轴对换
arr.T :对数组进行转置
np.dot(a, b)或a @ b或a.dot(b):计算两数组内积,即矩阵乘法
(五)生成伪随机数
numpy.random模块下有很多函数,可用
sample = np.random.standard_normal(size)生成样本数组
通常使用
rng = np.random.default_rng()生成一个生成器
样本数组生成:arr = rng.standard_normal(size)生成
(六)通用函数:元素级数组函数 p103
(七)条件逻辑表述为数组运算
numpy.where(布尔数组,arr或标量,arr或标量)
表现为对于布尔数组中的一个元素若为true则使用第二个参数,false则为第三个参数
(八)数学函数 p109
arr.mean() arr.sum()等函数,可以计算整个也可以以轴计算
aixs=0为列,=1为行
(九)布尔型数组的方法
表达式.sum():计算true或false的个数
arr.any():查看数组中是否有true
arr.all():查看是否全为true
以上两函数也适用于非布尔型数组
(十)排序
arr.sort()
arr.sort(axis=0):对列进行排序
arr1 = np.sort(arr)
np.sort返回一个排好序的副本
(十一)集合运算 p112
数组中的元素可能会有重复,使用numpy.unique(arr)对数组进行唯一化并返回排序结果
np.unique(arr)