【发布时间】:2020-07-27 17:51:23
【问题描述】:
我正在尝试从 1d 数组 (55,) 中移动元素
array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3,
4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4,
5, 1, 2, 3, 4, 1, 2, 3, 1, 2, 1]).
我想将这个一维数组组织成如下形式:
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0],
[0, 0],
[0]]
所以我想结束这个:
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 0],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8],
[1, 2, 3, 4, 5, 6, 7],
[1, 2, 3, 4, 5, 6],
[1, 2, 3, 4, 5],
[1, 2, 3, 4],
[1, 2, 3],
[1, 2],
[1]]
最有效的方法是什么?另请注意,我想对包含 325K 元素的大型数组执行此操作,以将其组织成 807 个不同的行。
【问题讨论】:
-
你不能用列表来做这个吗?效率不应该是你最初的目标。您要寻找的不是多维 numpy 数组。
-
Numpy 不接受非矩形数组。如果您坚持使用可变长度元素,则您的元素必须是列表之类的对象。换句话说,您不能拥有像您发布的输出那样的多维数组。
标签: python arrays numpy matrix triangular