2024-09-19 22:34:51 发布
网友
这个代码的结果对我来说毫无意义:
a = np.zeros((2, 2)) b = np.bmat([[a, a], [a, a]]) print(b.shape, b.dot(np.zeros(4)).shape)
形状为(4, 4)的矩阵在其最后一个轴上进行和积时,如何返回形状为(1, 4)的矩阵?在
(4, 4)
(1, 4)
bmat返回一个numpy.matrix实例,就像那些你不应该使用的东西一样,因为它们会导致各种奇怪的不兼容性。numpy.matrix总是试图保持至少两个维度,因此{}是2D而不是1D
bmat
numpy.matrix
做一个numpy.array:
numpy.array
b = np.bmat([[a, a], [a, a]]).A # ^
或者从1.13开始
bmat不做任何异国情调或花哨的事情;基本上,它只是连接的几个级别:
In [308]: np.bmat([[a,a],[a,a]]).A Out[308]: array([[0, 1, 0, 1], [2, 3, 2, 3], [0, 1, 0, 1], [2, 3, 2, 3]]) In [309]: alist = [[a,a],[a,a]] In [310]: np.concatenate([np.concatenate(sublist, axis=1) for sublist in alist], axis=0) Out[310]: array([[0, 1, 0, 1], [2, 3, 2, 3], [0, 1, 0, 1], [2, 3, 2, 3]])
bmat
返回一个numpy.matrix
实例,就像那些你不应该使用的东西一样,因为它们会导致各种奇怪的不兼容性。numpy.matrix
总是试图保持至少两个维度,因此{做一个
numpy.array
:或者从1.13开始
^{pr2}$bmat
不做任何异国情调或花哨的事情;基本上,它只是连接的几个级别:相关问题 更多 >
编程相关推荐