gpt4 book ai didi

python - 是否可以使用 numpy 中可用的函数将二维数组修补到子数组的数组中?

转载 作者:行者123 更新时间:2023-11-28 17:41:31 25 4
gpt4 key购买 nike

是否可以使用 np.reshape 和 np.split 函数将二维数组修补成子数组?

import numpy as np
data = np.arange(24).reshape(4,6)
print data
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]

answer = np.split(data,(-1,2,2),axis=1)

预期的答案是:

answer = [[[ 0  1]
[ 6 7]]

[[ 2 3]
[ 8 9]]

[[ 4 5]
[10 11]]

[[12 13]
[18 19]]

[[14 15]
[20 21]]

[[16 17]
[22 23]]]

最佳答案

split 不能同时用于多个轴。但是这里有一个使用这个操作两次的解决方案:

In [1]: import numpy as np

In [2]: data = np.arange(24).reshape(4,6)

In [3]: chunk = 2, 2

In [4]: tmp = np.array(np.split(data, data.shape[1]/chunk[1], axis=1))

In [5]: answer = np.vstack(np.split(tmp, tmp.shape[1]/chunk[0], axis=1))

In [6]: answer
Out[6]:
array([[[ 0, 1],
[ 6, 7]],

[[ 2, 3],
[ 8, 9]],

[[ 4, 5],
[10, 11]],

[[12, 13],
[18, 19]],

[[14, 15],
[20, 21]],

[[16, 17],
[22, 23]]])

不过我更喜欢 blockshaped Cyber​​ 注意到的解决方案。

关于python - 是否可以使用 numpy 中可用的函数将二维数组修补到子数组的数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com