草庐IT

numpy-ndarray

全部标签

python - Cython 代码比 Python/Numpy 代码慢 3-4 倍?

我正在尝试将我的Python/Numpy代码转换为Cython代码以达到加速目的。然而,Cython比Python/Numpy代码慢得多(3-4倍)。我是否正确使用了Cython?我是否在我的Cython代码中正确地将参数传递给myc_rb_etc()?当我调用集成功能时怎么办?预先感谢您的帮助。这是我的Python/Numpy代码:frompylabimport*importpylabasplfromnumpyimport*importnumpyasnpfromscipyimportintegratedefmyc_rb_e2f(y,t,k,d):M=y[0]E=y[1]CD=y[2]

python - 在没有循环的情况下将 "nan"添加到 numpy 数组 20 次

这是我的代码:importnumpyasnpn=np.array([1.1,2.3,3.4])forxinrange(20):n=np.append(n,[np.nan])如何只使用numpy的工具,将nan添加到我的numpy数组20次而无需循环?谢谢 最佳答案 n=np.append(n,np.repeat(np.nan,20))[编辑]好的,似乎使用np.repeat比使用np.zeros(20)+np.nan慢,比如MrE’sanswer:In[1]:timeitnp.zeros(10000)+np.nan100000loo

python - 访问 3D numpy 数组的切片

我有一个float的3Dnumpy数组。我索引数组不正确吗?我想访问切片124(索引123),但看到此错误:>>>arr.shape(31,285,286)>>>arr[:][123][:]RuntimeerrorTraceback(mostrecentcalllast):File"",line1,inIndexError:index123isoutofboundsforaxis0withsize31这个错误的原因是什么? 最佳答案 arr[:][123][:]是逐段处理的,不是整体。arr[:]#justacopyof`arr`;

python - 使用 numpy.logspace() 时出错 : how to generate numbers spaced evenly on a log-scale

我正在尝试使用numpy.logspace()生成从1e-10到1e-14的50个值。http://docs.scipy.org/doc/numpy/reference/generated/numpy.logspace.htmlimportnumpyasnpx=np.logspace(1e-10,1e-14,num=50)printx我得到的输出不正确:[1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.]我还有哪些其他选择?

python - numpy:将(an,)数组转换为(n,1)数组的语法/习惯用法?

我想将一个形状为(n,)的numpyndarray对象转换为一个形状为(n,1)的对象。我想出的最好办法是滚动我自己的_to_col函数:def_to_col(a):returna.reshape((a.size,1))但我很难相信这样一个无处不在的操作还没有内置到numpy的语法中。我想我只是没能找到正确的谷歌搜索来找到它。 最佳答案 我会使用以下内容:a[:,np.newaxis]另一种(但可能不太清楚)写同样东西的方法是:a[:,None]以上所有(包括您的版本)都是恒定时间操作。

python - 根据列值过滤numpy ndarray(矩阵)

这道题是关于根据某些列值过滤NumPyndarray。我有一个相当大的NumPyndarray(300000,50),我根据某些特定列中的值过滤它。我有ndtypes,所以我可以按名称访问每一列。第一列名为category_code,我需要过滤矩阵以仅返回category_code在("A","B",“C”)。结果需要是另一个NumPyndarray,其列仍可通过dtype名称访问。这是我现在做的:index=numpy.asarray([row['category_code']in('A','B','C')forrowindata])filtered_data=data[index]

python - 加入两个numpy矩阵

如果您有两个numpy矩阵,如何将它们合并为一个?它们应该水平连接,以便[[0][1][[0][1][1]+[0]=[1][0][4][1][4][1][0]][1]][0][1]]例如,使用这些矩阵:>>type(X)>>type(Y)>>X.shape>>Y.shape(53,1)(53,1)我已经尝试过hstack但出现错误:>>Z=hstack([X,Y])Traceback(mostrecentcalllast):File"labels.py",line85,inZ=hstack([X,Y])File"C:\Python27\lib\site-packages\scipy\s

python - 我可以欺骗 numpy.histogram 使其表现得像 numpy.bincount 吗?

所以,我有单词列表,我需要知道每个单词在每个列表中出现的频率。使用“.count(word)”有效,但速度太慢(每个列表都有数千个单词,而我有数千个列表)。我一直在尝试使用numpy来加快速度。我为每个单词生成了一个唯一的数字代码,因此我可以使用numpy.bincount(因为它只适用于整数,不适用于字符串)。但是我得到“ValueError:数组太大”。所以现在我正在尝试调整numpy.histogram函数的“bins”参数,使其返回我需要的频率计数(不知何故numpy.histogram似乎对大数组没有问题)。但到目前为止没有任何好处。有没有人碰巧以前做过这个?有可能吗?是否有

python - 遍历 numpy 数组列的所有成对组合

我有一个大小为numpy的数组arr.size=(200,600,20).我想计算scipy.stats.kendalltau在最后两个维度的每个成对组合上。例如:kendalltau(arr[:,0,0],arr[:,1,0])kendalltau(arr[:,0,0],arr[:,1,1])kendalltau(arr[:,0,0],arr[:,1,2])...kendalltau(arr[:,0,0],arr[:,2,0])kendalltau(arr[:,0,0],arr[:,2,1])kendalltau(arr[:,0,0],arr[:,2,2])......kendall

python - 结合numpy多维数组

我在以某种方式组合数组时遇到了一个小问题。假设我们有a=array([[1,1,1],[2,2,2],[3,3,3]])b=array([[10,10,10],[20,20,20],[30,30,30]])我想得到c=array([[[1,1,1],[10,10,10]],[[2,2,2],[20,20,20]],[[3,3,3],[30,30,30]]])真正的问题是我的数组a和b比3个坐标长得多!我使用concatenate取得的最好成绩是:concatenate((a,b),axis=2)结果数组([[1,1,1,10,10,10],[2,2,2,20,20,20],[3,3,3