草庐IT

numpy-ufunc

全部标签

python - 我想使用 NumPy/SciPy。我应该使用 Python 2 还是 3?

我即将开始使用NumPy/SciPy进行一些信号处理工作。但是,我以前从未使用过Python,不知道从哪里开始。我看到这个世界上目前有两个Python分支:版本2.x和3.x。作为一个新手,我本能地倾向于选择较新的,但似乎有很多关于两者之间不兼容的讨论。Numpy似乎与Python3兼容。我在SciPy上找不到任何文档。您会推荐使用Python3还是2?(你能给我一些资源来开始吗?我知道C/C++、Ruby、Matlab和其他一些东西,基本上想使用NumPy而不是Matlab。) 最佳答案 scipy和numpy都与py3k兼容。但

python - Numpy C-Api 示例给出了一个 SegFault

我正在尝试了解PythonC-Api的工作原理,并且我想在Python和C扩展之间交换numpy数组。因此,我开始了本教程:http://dsnra.jpl.nasa.gov/software/Python/numpydoc/numpy-13.html尝试在那里做第一个例子,一个计算2dnumpy数组轨迹的C模块,对我来说非常简洁,因为我也想在2d数组中做基本操作。#include#include"Numeric/arrayobject.h"#includeintmain(){Py_Initialize();import_array();}staticchardoc[]="Thisis

python - 与 Numpy 不同,Pandas 似乎不喜欢内存步幅

Pandas似乎缺少R风格的矩阵级滚动窗口函数(rollapply(...,by.column=FALSE)),仅提供基于向量的版本。因此我试着关注thisquestion它与可以复制的示例配合得很好,但它不适用于pandasDataFrame,即使在使用(看似相同的)底层Numpy数组时也是如此。人为问题复制:importnumpyasnpimportpandasaspdfromnumpy.lib.stride_tricksimportas_stridedtest=[[x*yforxinrange(1,10)]foryin[10**zforzinrange(5)]]mm=np.arr

python - 沿轴连接 numpy 字符串数组?

我有一个二维numpy字符串数组。有没有办法连接每一行中的字符串,然后将生成的字符串与分隔符字符串连接起来,例如换行符?例子:pic=np.array(['H','e','l','l','o','W','o','r','l','d']).reshape(2,5)我想得到:"Hello\nWorld\n" 最佳答案 在numpy的之外并不难:>>>importnumpyasnp>>>pic=np.array(['H','e','l','l','o','W','o','r','l','d']).reshape(2,5)>>>picarr

python - numpy 中不同矢量化方法的性能

我想在python中测试向量化代码的性能:importtimeitimportnumpyasnpdeffunc1():x=np.arange(1000)sum=np.sum(x*2)returnsumdeffunc2():sum=0foriinxrange(1000):sum+=i*2returnsumdeffunc3():sum=0foriinxrange(0,1000,4):x=np.arange(i,i+4,1)sum+=np.sum(x*2)returnsumprinttimeit.timeit(func1,number=1000)printtimeit.timeit(func

python - 获取二维 numpy 数组中大于阈值的元素的索引

我有一个2Dnumpy数组:x=[[1.92043482e-040.00000000e+000.00000000e+000.00000000e+000.00000000e+000.00000000e+002.41005634e-030.00000000e+007.19330120e-040.00000000e+000.00000000e+001.42886875e-040.00000000e+000.00000000e+000.00000000e+000.00000000e+000.00000000e+009.79279411e-057.88888657e-040.00000000e+

python - NumPy 根据另一个数组中的值对第三个数组中的每个匹配元素求和一个数组

我有两个numpy数组,一个包含值,一个包含每个值类别。values=np.array([1,2,3,4,5,6,7,8,9,10])valcats=np.array([101,301,201,201,102,302,302,202,102,301])我有另一个数组,其中包含我想要汇总的独特类别。categories=np.array([101,102,201,202,301,302])我的问题是,我将运行相同的求和过程数十亿次,每一微秒都很重要。我目前的实现如下。catsums=[]forxincategories:catsums.append(np.sum(values[np.wh

python - 将两个 2D numpy 数组连接成一个 2 元组的 2D 数组

我有两个像这样的2Dnumpy数组,代表三个点之间的x/y距离。我需要x/y距离作为单个数组中的元组。所以来自:x_dists=array([[0,-1,-2],[1,0,-1],[2,1,0]])y_dists=array([[0,-1,-2],[1,0,-1],[2,1,0]])我需要:dists=array([[[0,0],[-1,-1],[-2,-2]],[[1,1],[0,0],[-1,-1]],[[2,2],[1,1],[0,0]]])我尝试过使用dstack/hstack/vstack/concatenate的各种排列组合,但它们似乎都无法满足我的要求。代码中的实际数组可

python - 卡方 numpy.polyfit (numpy)

有人可以解释如何使用numpy.polyfit获得Chi^2/doF吗? 最佳答案 假设你有一些数据点x=numpy.array([0.0,1.0,2.0,3.0])y=numpy.array([3.6,1.3,0.2,0.9])要将抛物线拟合到这些点,请使用numpy.polyfit():p=numpy.polyfit(x,y,2)要获得此拟合的卡方值,请计算数据点的x值处的多项式,减去y值、平方和求和:chi_squared=numpy.sum((numpy.polyval(p,x)-y)**2)如果愿意,您可以将此数字除以自由

python - 将交错的 NumPy 整数数组转换为 complex64 的最快方法是什么?

我有一个输入数据流,其中包含交错的实数和虚数整数。将这些转换为complex64值是我程序中最慢的操作。这是我目前的做法:importnumpyasnpa=np.zeros(1000000,dtype=np.int16)b=np.complex64(a[::2])+np.complex64(1j)*np.complex64(a[1::2])如果不进行C扩展或使用cython之类的东西,我能做得更好吗?如果我不能做得更好,使用其中一种技术的最简单方法是什么? 最佳答案 [~]|1>importnumpyasnp[~]|2>a=np.z