为了账号安全,请及时绑定邮箱和手机立即绑定

以特定方式重塑Python数组

以特定方式重塑Python数组

慕的地8271018 2021-03-31 21:01:53
我正在研究Python代码,以便基本上可以使用Numpy Array做到这一点。我有一个Matlab代码,这是A = [1:30]'; % Example matrixrows = 3;for i=1:(numel(A)-rows+1)    B(1:rows,i)=A(i:i+rows-1,1);end或者,没有任何循环,B = conv2(A.', flip(eye(rows)));B = B(:, rows:end-rows+1);有人可以帮我在Python中做同样的事情吗?使用重塑功能无济于事,因为我需要“镜像”值(而不仅仅是重组它们)。
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

使用np.ndarray.reshape:


import numpy as np


A = np.arange(1, 31)

B = A.reshape((3, 10))


print(B)


[[ 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 30]]


查看完整回答
反对 回复 2021-04-09
?
慕仙森

TA贡献1827条经验 获得超8个赞

尝试该代码段:


import numpy as np

start = 1

end = 30

b_dim = 28


a = np.arange(start, end+1)

b = np.zeros((3, b_dim))


print("a = ", a)


rows, _ = b.shape


for row in range(rows):

    data = a[row:row+b_dim]

    b[row, :] = data


print("b = ", b)

它打印


('a = ', array([ 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, 30]))

('b = ', array([[  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.],

       [  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.],

       [  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.,  30.]]))


查看完整回答
反对 回复 2021-04-09
  • 3 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号