1. 指定数据类型
student_type = np.dtype([('name', 'U20'), ('sex', 'U1'), ('age', 'i1'), ('marks', 'f4')]) students = np.array([('张三', '男', 18, 87.6), ('李四', '女', 19, 100), ('王五', '男', 28, 85.5)], dtype=student_type)
2. 等步长,平均分, 等比 初始化NumPy矩阵
x = np.arange(10, 20, 3) # 平均分 x1 = np.linspace(10,20, 2) # 等比数列 以base为基数, base的3次方 等比拆分10份数 x2 = np.logspace(1, 3, num=10, base=3)
3. 列表赋值, 视图, 拷贝,三者之间的关系
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] print(id(a)) b = a[:] print(id(b)) b[0] = 1024 print(a) print(b) # 列表赋值 change c = np.arange(0, 10) c2 = c[:] print(id(c)) print(id(c2)) c2[0] = 1024 print(c2)# 视图 change print(c)# 视图 change d = np.arange(0, 10) d2 = d.copy() d2[0] = 1024 print(id(d)) print(id(d2)) print(d) # 拷贝 print(d2) # change
4. 高级索引返回数据副本, 切片返回数据视图
a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]]) print(a[..., 1:]) print(a[1:, 1:])
5. C风格和F风格的区别(只有在遍历的时候有区别)
array01 = np.arange(0, 20, 2) array01 = array01.reshape([2, 5]) array02 = array01.copy(order='F') print(array02) # [[ 0 2 4 6 8] # [10 12 14 16 18]] # 0 10 2 12 4 14 6 16 8 18 for x in np.nditer(array02): #列优先方式输出数据 print(x, end='\t') print()
6. 矩阵的堆叠
# 矩阵的纵向堆叠 # 12 # 34 # 56 # 78 np.concatenate((a,b)) # 矩阵的横向堆叠 # 1256 # 3478 np.concatenate((a,b),axis=1)