0

如何在没有循环的情况下将 numpy nd 数组转换为 (n-1)d 的列表

假设我们有一个数组 3d numpy 数组

 arr3d = np.random.randint(1, 100, size=7 * 3 * 6).reshape((7, 3, 6))

带循环(慢速解决方案):

arr_what_i_want= []
for i in range(7):
    arr2d = arr3d[i]
    arr_what_i_want.append([arr2d])
    pass

如何在没有循环的情况下获得“arr_what_i_want”

4

2 回答 2

0

让我猜测一下:

arr3d = np.random.randint(1, 100, size=7 * 3 * 6).reshape((7, 3, 6))
arr2d = arr3d.reshape(arr3d.shape[0], (arr3d.shape[1]*arr3d.shape[2]))
print(arr2d)

输出:
[[68 29 30 22 13 93 93 91 8 82 34 48 41 83 72 75 25 38]
[12 43 4 76 21 1 26 26 84 10 76 42 49 66 40 22 31 13]
[64 84 83 28 33 3 97 11 95 37 61 42 18 31 3 16 67 86]
[94 73 2 26 23 94 69 49 40 39 60 79 84 39 57 94 76 16]
[83 5 65 23 42 49 48 84 82 55 12 469 1 49 81]
[48 56 73 51 63 88 31 57 12 92 6 25 98 46 67 38 73 60]
[42 8 47 13 76 40 71 54 99 58 47 93 2 56 38 9 73 36]]

于 2021-10-19T06:57:09.883 回答
0

列出第一个维度:

arr_what_i_want = [*arr3d]

或者

arr_what_i_want = list(arr3d)
于 2021-10-19T05:42:10.223 回答