【发布时间】:2018-05-29 10:05:37
【问题描述】:
我想将一个多维(超过 2 个)的数组转换为一个二维数组,其中其他维度将转换为嵌套的独立数组。
所以如果我有一个像numpy.arange(3 * 4 * 5 * 5 * 5).reshape((3, 4, 5, 5, 5)) 这样的数组,我想将它转换为一个形状为(3, 4) 的数组,其中每个元素都是一个形状为(5, 5, 5) 的数组。外部数组的 dtype 为 object。
例如,对于np.arange(8).reshape((1, 1, 2, 2, 2)),输出将等同于:
a = np.ndarray(shape=(1,1), dtype=object)
a[0, 0] = np.arange(8).reshape((1, 1, 2, 2, 2))[0, 0, :, :, :]
我怎样才能有效地做到这一点?
【问题讨论】:
-
能否提供一个示例代码来展示您已经尝试过的内容?
-
你能用
np.arange(8).reshape((1, 1, 2, 2, 2))来显示预期的输出吗?你的例子太大了。 -
添加了预期的输出示例。
-
一个类似的 SO 问题,使用
frompyfunc, Force numpy to create array of objects 给出了一个聪明(虽然速度较慢)的答案
标签: numpy