【发布时间】:2017-09-18 03:29:07
【问题描述】:
如何创建一个形状为[2, 2, 3]的numpy数组,其中轴2的元素是另一个数组,例如[1, 2, 3]?
所以我想做这样的无效代码:
a = np.arange(1, 4)
b = np.full((3, 3), a)
产生如下数组:
[[[ 1. 2. 3.]
[ 1. 2. 3.]]
[[ 1. 2. 3.]
[ 1. 2. 3.]]]
当然可以使循环填充喜欢,但认为可能有一个捷径:
for y in range(b.shape[0]):
for x in range(b.shape[1]):
b[y, x, :] = a
【问题讨论】:
-
只需使用
np.full的预期形状即可:np.full((2,2,3), a)? -
"其中轴 2 的元素是另一个数组"。那应该是一个
(2,3)形状的数组吧?您建议的[1,2,3]不是... -
@TomdeGeus:不,示例中的目的是创建一个形状为
[2, 2, 3]的数组,或者我称之为[2, 2]数组,其中元素是[3]数组。 -
@Divakar:谢谢,就这样。
-
full如果数组是对象 dtype stackoverflow.com/q/43483663 可能会产生意外结果。它的行为类似于[[]]*4。
标签: python arrays numpy vectorization numpy-ndarray