我正在计算 NN 的成本函数。我对从 numpy.dot 得到的 (1,1) 答案做了一个 numpy.squeeze。然后我得到一个形状为 (0,1) 的 ndarray。
什么是形状 () 的 ndarray,形状 (1,) 的 ndarray 与形状 (5) 中的一个有何不同?
最佳答案
(1, 1)
类似于 [[3]]
,就像一个 1x1 矩阵。 (1,)
类似于 [3]
,就像一个大小为 1 的向量。()
,又名标量,类似于 3
. 区别很微妙,因为由于广播规则,标量和数组通常可以毫无问题地组合在一起,但是您不能索引标量,而您可以索引大小为 1 的向量或大小为 1x1 的矩阵。另一方面,标量通常可以像原始 Python 值一样使用,例如
int
或 float
.如果您不想拥有标量,您可以传递 axis
np.squeeze
的参数确保某些尺寸不被挤压或使用 np.atleast_1d
确保你传递的任何东西至少有一个维度。您还可以使用 np.isscalar
检查某事物是否为标量.
关于python-2.7 - np.squeeze 从形状 (1,1) 之后返回的形状 () ndarray 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862778/