python - 强制 numpy 创建对象数组

标签 python arrays numpy

我有一个数组:

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/

相关文章:

c# - 如何制作一个结构来跟踪一些 TreeView 和 ListView 项目?

c++ - std::array initializer list 在初始化列表中初始化

javascript - DataTable createdRow 没有向行添加属性吗?

python - 如何不仅选择 `numpy.ndarray` 的最大值,而且选择 python 中的前 3 个最大值?

python-3.x - python中的随机函数在圆内生成随机对

python - 在 PyInstaller 下生成 x32 和 x64 版本

python - 我可以将现有的斧头对象转换为 3D 投影吗?

Python:按元素比较数组的最快方法

Python、Sqlite3 - 如何将列表转换为 BLOB 单元格

python - 在cloud 9环境下安装python包zipline 支持workspace python