python - 以特定方式重塑 Python 数组
问题描述
我正在编写一个 Python 代码,这样我基本上可以用一个 Numpy 数组来做到这一点
我有一个 Matlab 代码,它是
A = [1:30]'; % Example matrix
rows = 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 中做同样的事情吗?使用 reshape 函数没有帮助,因为我需要“镜像”这些值(而不仅仅是重新组织它们)。
谢谢你。
解决方案
不是很性感,但不适合
import numpy as np
a = np.arange(1,31)
b = np.arange(3).reshape(3,1)
c = b+a[:28]
试图翻译你的 matlab 代码
import numpy as np
from scipy.signal import convolve2d
a = np.arange(1,31).reshape(1,30)
b = np.flip(np.eye(3,28),0)
c = convolve2d(a, b)[:,2:28]
推荐阅读
- vim - 检测缓冲区是否在状态行的非活动窗口中
- firefox - 如何从 web 扩展打开 Firefox 的“页面信息”模式
- c# - .net核心注入中的Unity风格命名服务注册?
- class - 结构成员名称是否比我使用继承的类成员使用更多内存?
- php - 带有 Laravel、Passport 和客户端凭据的私有推送通道授予客户端
- google-analytics - 分析报告 URL 中的唯一字符串是什么?
- xamarin - 如何使用 Xamarin 中的 NSDraggingInfo.EnumerateDraggingItems?
- jquery - 重置 .off() 方法
- r - 输出列表输入就绪,如 datapasta::dpasta
- excel - Excel 公式命名范围更改 - 2020 年 1 月更新