副本和视图
-
副本:复制
-
三种情况属于浅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((数组,数组)) /([数组,数组]) 水平拼接
-