如何解决如何将数组拆分为小块,然后重新加入
我是python的新手。我需要更新2D数组中的数据, 首先将数组分成小块,以便每个位置的数字乘以某个值。例如,原始数组将如下所示:
[[a1,b1,c1,d1,......]
[a2,b2,c2,d2,......]
[a3,b3,c3,d3,......]
[a4,b4,c4,d4,......]
[...........................]])
然后将其拆分为2x2数组,并将每个值乘以不同的值
[[a1(2),b1(3)]
[a2(4),b2(5)])
然后将它们重新聚在一起
[[a1(2),b1(3),c1(2),d1(3),......]
[a2(4),b2(5),c2(4),d2(5),......]
[a3(2),b3(3),c3(2),d3(3),......]
[a4(4),b4(5),c4(4),d4(5),......]
[...........................]])
有没有办法在python中做到这一点?非常感谢。
解决方法
将NumPy
(尤其是numpy.pad()
)用作:
import numpy as np
a = np.arange(30).reshape(6,5)
print(a)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]
# [15 16 17 18 19]
# [20 21 22 23 24]
# [25 26 27 28 29]]
b = np.array([[0,1],[2,3]])
print(b)
# [[0 1]
# [2 3]]
new_a = a*np.pad(b,((0,a.shape[0]-b.shape[0]),(0,a.shape[1]-b.shape[1])),mode = 'wrap')
print(new_a)
# [[ 0 1 0 3 0]
# [10 18 14 24 18]
# [ 0 11 0 13 0]
# [30 48 34 54 38]
# [ 0 21 0 23 0]
# [50 78 54 84 58]]
如果您的数组不是NumPy
数组,请使用以下命令将其转换为NumPy
:
import numpy as np
numpy_array = np.array(not_numpy_array)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。