Python的新手,在numpy中挣扎,希望有人能帮助我,谢谢!
import numpy as np
A = np.matrix('1.0 2.0; 3.0 4.0')
B = np.matrix('5.0 6.0; 7.0 8.0')
C = np.matrix('1.0 2.0; 5.0 6.0; 3.0 4.0; 7.0 8.0')
print "A=",A
print "B=",B
print "C=",C
结果:
A= [[ 1. 2.]
[ 3. 4.]]
B= [[ 5. 6.]
[ 7. 8.]]
C= [[ 1. 2.]
[ 5. 6.]
[ 3. 4.]
[ 7. 8.]]
问题:如何使用A和B生成C?
首先hstack
是矩阵(因此它们在“ x”轴上连接),然后reshape
是所需的形状:
new_C = np.hstack((A, B)).reshape(-1, 2)
print(np.all(new_C == C))
# Out: True
的-1
在reshape
装置:自动调整所述第一维的长度(“Y”轴),使得所述第二尺寸(“X”轴)被整形至的长度2
。
与级联和切片相比,其优势在于,只要第二维具有两个元素,它就可以与第一维任何长度的矩阵一起使用。此外,重塑是一种非常有效的方法,因为在许多情况下不需要生成副本。因此,hstack
+reshape
应该比三倍快得多concatenate
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句