我有一个数组:
x = np.array([[1, 2, 3], [4, 5, 6]])
我想创建另一个 shape=(1, 1)
和 dtype=np.object
的数组,其唯一元素是 x。
我试过这段代码:
a = np.array([[x]], dtype=np.object)
但它会生成一个形状为 (1, 1, 2, 3)
的数组。
当然可以:
a = np.zeros(shape=(1, 1), dtype=np.object)
a[0, 0] = x
但我希望解决方案能够轻松扩展到更大的 a
形状,例如:
[[x, x], [x, x]]
无需对所有索引运行 for
循环。
有什么建议可以实现吗?
UPD1
数组可能不同,如:
x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.array([[7, 8, 9], [0, 1, 2]])
u = np.array([[3, 4, 5], [6, 7, 8]])
v = np.array([[9, 0, 1], [2, 3, 4]])
[[x, y], [u, v]]
它们也可能有不同的形状,但对于这种情况,一个简单的 np.array([[x, y], [u, v]])
构造函数就可以正常工作
UPD2
我真的想要一个适用于任意 x, y, u, v
形状的解决方案,不一定都一样。
最佳答案
a = np.empty(shape=(2, 2), dtype=np.object)
a.fill(x)
关于python - 强制 numpy 创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49064548/