副本和视图
-
副本:复制
-
三种情况属于浅copy
-
赋值运算
-
切片
-
视图:链接,操作数组是,返回的不是副本就是视图 c =a.view().创建a的视图/影子和切片一样都是浅copy
-
-
深copy
-
b = a.copy
-
-
向量化
向量化和广播两个原理是矩阵内部原理
-
向量化运算=矢量化运算(可避免循环,直接实现矩阵之间,对应元素进行操作)
广播机制
广播机制:维度不同的矩阵运算时低维数矩阵会自动补全
-
-
原则2:是低维度矩阵按照某个轴进行广播
import numpy as np a = np.array([[1,3], [2,4]]) b = np.array([2]) a+b # 结果 3 ,5,4,6 b2 = np.array([[1],[3]]) a+b2 #
切片技巧
-
切片时参数可为布尔条件
a[a>5] 表示提取大于5的元素的数据
-
切片时可以传递数组
import numpy as np #索引技巧一维数组 a = np.arange(12) b = np.array([1,2,6,8]) a[b]#传递的参数是数组b """ array([1, 2, 6, 8]) """ #实列2二维矩阵 import numpy as np a = np.arange(1,9).reshape(3,3) b = np.array([[2,0],[1,2]]) a[b] """ array([[[7, 8, 9], [1, 2, 3]], [[4, 5, 6], [7, 8, 9]]]) """
拼接
-
vstack((数组,数组)) /([数组,数组]) 水平拼接
-