这段代码的结果对我来说毫无意义:

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/

10-16 01:05