【发布时间】:2015-11-23 20:40:37
【问题描述】:
我正在尝试添加两个数组。
np.zeros((6,9,20)) + np.array([1,2,3,4,5,6,7,8,9])
我想弄出一些类似的东西
array([[[ 1., 1., 1., ..., 1., 1., 1.],
[ 2., 2., 2., ..., 2., 2., 2.],
[ 3., 3., 3., ..., 3., 3., 3.],
...,
[ 7., 7., 7., ..., 7., 7., 7.],
[ 8., 8., 8., ..., 8., 8., 8.],
[ 9., 9., 9., ..., 9., 9., 9.]],
[[ 1., 1., 1., ..., 1., 1., 1.],
[ 2., 2., 2., ..., 2., 2., 2.],
[ 3., 3., 3., ..., 3., 3., 3.],
...,
[ 7., 7., 7., ..., 7., 7., 7.],
[ 8., 8., 8., ..., 8., 8., 8.],
[ 9., 9., 9., ..., 9., 9., 9.]],
因此,在相应列的每个矩阵中添加条目。我知道我可以在某种循环中对其进行编码,但我正在尝试使用更优雅/更快的解决方案。
【问题讨论】:
-
输出数组的形状必须是什么?
-
对于这个例子,它需要保留 3-D 数组的形状,所以 6,9,20
-
你不会得到像
array([[[ 1., 2., 3., ..., 7., 8., 9.],...这样形状为(6,9,20)的输出,因为所需输出中的最后一个维度似乎有 9 个元素,而不是 20 个。
标签: python arrays numpy vectorization array-broadcasting