这段代码的结果对我来说毫无意义:
a = np.zeros((2, 2))
b = np.bmat([[a, a], [a, a]])
print(b.shape, b.dot(np.zeros(4)).shape)
一个形状为“cc>”的矩阵如何在其最后轴上做和积返回形状矩阵“cc>”?
最佳答案
bmat
返回一个numpy.matrix
实例,因为在那些不应该使用的东西中,它们会导致各种奇怪的不兼容。numpy.matrix
总是试图至少保留两个维度,因此b.dot(np.zeros(4))
是二维的,而不是一维的。
制作一个numpy.array
:
b = np.bmat([[a, a], [a, a]]).A
# ^
或者从1.13年起,
b = np.block([[a, a], [a, a]])
关于python - numpy块矩阵如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43176131/