I. Numpy array
1. np.zeros(()) 【都是0】

2. np.random.random(()) 【0-1之间的随机浮点数】

3. np.arange(开始,结束(不包括),step)


只有一个参数,默认从0开始
4. 3D & 4D array


5. array.flatten() 【把多维数组转化为一维】
6. array.shape
7. array.reshape((,)) 【改变形状,不改变元素和元素的数量】

II. Data types
1. data types 【跟python相比,numpy数据类型包括数据类型(如int),还包括可用内存量(以位为单位)】
np.int64 数据类型保存64位(bits)

bit VS byte
bit: is the smallest unit of memory data available on a computer 电脑上存储的最小单位,只存储0或1
byte: a sequence of eight bits
np.int32:可以储存2的32次方个int(2的32次方=40亿,即从-20亿到+20亿的整数)
2. np.array.dtype 【查找数组中的元素的数据类型】

在创建数组时,可以用dtype来指定特定的数据类型:

3. array.astype(np.int8) 【更改数据类型为int8】
若更改数据类型,则全部元素的数据类型都会被更改!
若添加新元素,如把float加入到int中,所有数据类型会变为float;把str加入到任何,所有变成str;把int加入到bool,所有变成int
III. Index
1. array[3, 5] :【查找第三行第五列元素】
array[1] : 默认是行,第一行
array[:, 1] : 第一列
2. Sclice

查找index为50-100之间的偶数index元素,index第3列
array[50:101:2, 3] 2是step!!!
3. Axis order

4. np.sort(array)
默认按照axis = 1 排列,最大的数字位于最后一列

np.sort(array, axis = 0) 按照axis = 0 排列,最大的数字位于最后一行

5. Flitering
1) fancy flitering
【mask】先建立一个condition,筛选出符合这个con的数组,返回值为数组


2) np.where(array[]condition)
【返回值为indices】

np.where(sudoku_game中所有为0的元素,””: 把所有是0的元素替换为空格,其余不满足条件的元素不变)

6. np.concatenate((需要连接的array),axis = ) 连接
【连接,默认在最下行后添加】无法改变维度

添加列,axis = 1

7. np.delete(array,具体的行或列,axis轴方向)

IV. Aggregate 计算计数
1. array.sum() array.max()/min() array.mean()
axis = 0 计算每一列的总数.max.min.mean
axis = 1 每行的总数

keepdims = True 保持原来的数据结构格式

2. array.cumsum() 累计值

3. vectorized python code
len() Python function
np.vectorize(len) numpy function
np.vectorize(str.upper)

4. broadcast array







V. 存储&读取
1. Load and save npy & nparray
numpy 可以存储成csv, txt, pkl, npy 文件形式,但npy的速度和效率最快

加载npy文件 with open("文件名", "rb") as 名字:
np.load(名字)
rb : read binary 二进制读取

把array存进npy files 里面
npy文件可以之前不存在,若存在则自动覆盖
wb: write binary

2. np.flip(array,axis) 颠倒顺序行/列/颜色
axis = 2 反转颜色
axis = (0,1)反转行 列, 颜色不变

3. np.transpose(array, axes=()) 转置
axes = (1,0,2) # 行列转置, 颜色不变

4. np.spilt(array,拆分数,要拆分的轴)
平着拆分 axis = 0

本文介绍了NumPy库中的关键概念,如创建全零或随机数组、数据类型处理、数组索引、排序过滤、聚合计算、数组操作(如转置、翻转和拆分)以及数据存储与读取。
18万+





