numpy expand_dim() 中的 (13027,) 和 (13027,1) 有什么区别
What is the difference between (13027,) and (13027,1) in numpy expand_dim()
在应用调用 np.expand_dim(b, axis=1).
之前和之后,我将调用 .shape
应用于变量 b
之后,这是一段代码中的两个输出
我看到 _dim
部分可能看起来像是一个死赠品,但输出似乎没有什么不同,除了可能将行向量转换为列向量(?):
b
是 [208. 193. 208. ... 46. 93. 200.]
行向量,但 np.expand_dim(b, axis=1)
给出:
[[208.]
[193.]
[208.]
...
[ 46.]
[ 93.]
[200.]]
这可以解释为列向量 (?),而不是任何增加的维数。
(13027,) 将 x 轴视为 0,而 (13027,1) 将 x 轴视为 1。
https://numpy.org/doc/stable/reference/generated/numpy.expand_dims.html
它就像“i”,默认情况下 i = 0,所以如果您没有明确定义它,它将从 0 开始。
What is the difference between (13027,)
and (13027,1)
它们是不同维度的数组,一些操作对它们的应用也不同。例如
>>> a = np.arange(5)
>>> b = np.arange(5, 10)
>>> a + b
array([ 5, 7, 9, 11, 13])
>>> np.expand_dims(a, axis=1) + b
array([[ 5, 6, 7, 8, 9],
[ 6, 7, 8, 9, 10],
[ 7, 8, 9, 10, 11],
[ 8, 9, 10, 11, 12],
[ 9, 10, 11, 12, 13]])
最后的结果就是我们所说的广播,你可以在numpy中阅读docs, or even 。
基本上np.expand_dims
在指定的维度上添加新的轴,以下所有的都达到相同的结果
>>> a.shape
(5,)
>>> np.expand_dims(a, axis=(0, 2)).shape
(1, 5, 1)
>>> a[None,:,None].shape
(1, 5, 1)
>>> a[np.newaxis,:,np.newaxis].shape
(1, 5, 1)
请注意,在 numpy 中,一维数组的转置仍然是一维数组。它不像在 MATLAB 中行向量变成列向量。
>>> a
array([0, 1, 2, 3, 4])
>>> a.T
array([0, 1, 2, 3, 4])
>>> a.T.shape
(5,)
因此,为了将其转换为“列向量”,您必须通过广播(或重塑)将数组从形状 (N,) 转换为 (N, 1)。但是您最好将其视为 N 行的二维数组,每行 1 个元素。
在应用调用 np.expand_dim(b, axis=1).
.shape
应用于变量 b
之后,这是一段代码中的两个输出
我看到 _dim
部分可能看起来像是一个死赠品,但输出似乎没有什么不同,除了可能将行向量转换为列向量(?):
b
是 [208. 193. 208. ... 46. 93. 200.]
行向量,但 np.expand_dim(b, axis=1)
给出:
[[208.]
[193.]
[208.]
...
[ 46.]
[ 93.]
[200.]]
这可以解释为列向量 (?),而不是任何增加的维数。
(13027,) 将 x 轴视为 0,而 (13027,1) 将 x 轴视为 1。
https://numpy.org/doc/stable/reference/generated/numpy.expand_dims.html
它就像“i”,默认情况下 i = 0,所以如果您没有明确定义它,它将从 0 开始。
What is the difference between
(13027,)
and(13027,1)
它们是不同维度的数组,一些操作对它们的应用也不同。例如
>>> a = np.arange(5)
>>> b = np.arange(5, 10)
>>> a + b
array([ 5, 7, 9, 11, 13])
>>> np.expand_dims(a, axis=1) + b
array([[ 5, 6, 7, 8, 9],
[ 6, 7, 8, 9, 10],
[ 7, 8, 9, 10, 11],
[ 8, 9, 10, 11, 12],
[ 9, 10, 11, 12, 13]])
最后的结果就是我们所说的广播,你可以在numpy中阅读docs, or even
基本上np.expand_dims
在指定的维度上添加新的轴,以下所有的都达到相同的结果
>>> a.shape
(5,)
>>> np.expand_dims(a, axis=(0, 2)).shape
(1, 5, 1)
>>> a[None,:,None].shape
(1, 5, 1)
>>> a[np.newaxis,:,np.newaxis].shape
(1, 5, 1)
请注意,在 numpy 中,一维数组的转置仍然是一维数组。它不像在 MATLAB 中行向量变成列向量。
>>> a
array([0, 1, 2, 3, 4])
>>> a.T
array([0, 1, 2, 3, 4])
>>> a.T.shape
(5,)
因此,为了将其转换为“列向量”,您必须通过广播(或重塑)将数组从形状 (N,) 转换为 (N, 1)。但是您最好将其视为 N 行的二维数组,每行 1 个元素。