【Python 基础】零碎知识小积累
矢量化:
“矢量化”(简化)是重写循环的过程,使得不是将阵列的单个元素处理N次,而是将阵列的4个元素同时N / 4次处理。
向量化和循环展开之间的区别:
考虑以下非常简单的循环,它添加两个数组的元素,并将结果存储到第三个数组。
其中“addFourThingsAtOnceAndStoreResult”是您的编译器用于指定向量指令的内在函数的占位符。注意,一些编译器能够自动向量化这样非常简单的循环,这通常可以通过编译选项启用。更复杂的算法仍然需要来自程序员的帮助来生成良好的矢量代码。
numpy中tile()函数
函数形式: tile(A,rep)
功能:重复A的各个维度
参数类型:
- A: Array类的都可以,即A是一个ndarry数组
- rep:A沿着各个维度重复的次数,表示变成的矩阵的形状,例如rep=(2,2,3)表示把A当成一个元素,形成一个(2,2,3) 形状的数组。
例:
1 >>>A=np.array([0.8,1.1]) 2 >>>np.tile(A,3) 3 array([ 0.8, 1.1, 0.8, 1.1, 0.8, 1.1]) 4 >>>np.tile(A, (4, 1)) 5 array([[ 0.8, 1.1], 6 [ 0.8, 1.1], 7 [ 0.8, 1.1], 8 [ 0.8, 1.1]]) 9 >>>np.tile([1,2],(2,2)) 10 array([[1, 2, 1, 2], 11 [1, 2, 1, 2]]) 12 >>>np.tile([1,2],(2,2,3)) 13 array([[[1, 2, 1, 2, 1, 2], 14 [1, 2, 1, 2, 1, 2]], 15 16 [[1, 2, 1, 2, 1, 2], 17 [1, 2, 1, 2, 1, 2]]])