我刚刚注意到lena已经从最新版本的scipy中删除了.在我的博士期间,我一直在使用这个图像,以测量图像性能,我不能在这个阶段真正改变它(这将意味着重新测量一切,这不是一个真正的选择.).您是否知道将重新启用lena的软件包?我希望每次都要复制文件.它可能很容易制作,但如果有人已经拥有它会很方便.
编辑:我制作了包,你可以在这里找到它:https://github.com/dboonz/reshow_lena
我有一个1-D numpy数组,我希望将其转换为累积产品.一个天真的实现是这样的:
import numpy as np
arr = [1,2,3,4,5,6,7,8,9,10]
c_sum = [np.prod(arr[:i]) for i in range(1, len(arr) + 1)]
# c_sum = [1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
Run Code Online (Sandbox Code Playgroud)
然而,当尺寸arr变得非常大时,这可能会变慢.我怀疑使用其中一个Numpy或Scipy阵列魔法可能会有更有效的方法.有人可以告诉我该怎么做吗?
我使用并喜欢Numpy和Scipy,但在我参与的其中一个领域(生物力学研究),MATLAB在这个领域占主导地位.
我相信这种统治很大程度上归功于传统,类似于Windows或Office所发生的事情,但也许有一些内在的理由偏爱一个而不是另一个.
目前我可以用Numpy/Scipy来解决大多数数据分析问题,但是当我提到它时,我看到了研究人员脸上的尴尬.
真正的问题是:如果我已经知道Numpy/Scipy,是否真的需要学习Matlab?
出于仿真目的,我想生成一个字符串对列表。每个字符串对包含两个字符串。每个字符串由随机生成的数字组成。字符串的长度也是随机数。如何使用实现此功能Numpy?
我需要使用numpy和scipy将以下Matlab脚本转换为Python.
此脚本计算称为LPQ(局部相位定量器)的功能,该功能通常用于面部识别.
记录LPQ特征提取的文件可以在这里找到:http : //www.ee.oulu.fi/mvg/files/pdf/ICISP08.pdf 2
该脚本的Matlab版本如下:
function LPQdesc = lpq(img,winSize,mode)
%% Defaul parameters
% Local window size
if nargin<2 || isempty(winSize)
winSize=3; % default window size 3
end
rho=0.90; % Use correlation coefficient rho=0.9 as default
% Local frequency estimation (Frequency points used [alpha,0], [0,alpha], [alpha,alpha], and [alpha,-alpha])
if nargin<4 || isempty(freqestim)
freqestim=1; %use Short-Term Fourier Transform (STFT) with uniform window by default
end
STFTalpha=1/winSize; % alpha in STFT approaches (for Gaussian derivative alpha=1)
sigmaS=(winSize-1)/4; % …Run Code Online (Sandbox Code Playgroud) 我已经声明了一个x变量并填充了它np.arange(-1, 1, 0.1).该print(x)方法给我这样的东西:
[ -1.00000000e+00 -9.00000000e-01 -8.00000000e-01 -7.00000000e-01
-6.00000000e-01 -5.00000000e-01 -4.00000000e-01 -3.00000000e-01
-2.00000000e-01 -1.00000000e-01 -2.22044605e-16 1.00000000e-01
2.00000000e-01 3.00000000e-01 4.00000000e-01 5.00000000e-01
6.00000000e-01 7.00000000e-01 8.00000000e-01 9.00000000e-01]
Run Code Online (Sandbox Code Playgroud)
这些是什么数字?如何将它们转换为例如float类型?先感谢您.