草庐IT

numpy-ufunc

全部标签

python - numpy ndarray 可哈希性

我在理解如何管理numpy对象的可哈希性时遇到了一些问题。>>>importnumpyasnp>>>classVector(np.ndarray):...pass>>>nparray=np.array([0.])>>>vector=Vector(shape=(1,),buffer=nparray)>>>ndarray=np.ndarray(shape=(1,),buffer=nparray)>>>nparrayarray([0.])>>>ndarrayarray([0.])>>>vectorVector([0.])>>>'__hash__'indir(nparray)True>>>'_

python numpy 和内存效率(按引用传递与值传递)

我最近越来越多地使用python代替c/c++,因为它可以将我的编码时间缩短几倍。同时,当我处理大量数据时,我的python程序运行速度开始变得比c慢很多。我想知道这是否是由于我低效地使用大对象/数组造成的。是否有关于numpy/python如何处理内存的综合指南?什么时候通过引用传递,什么时候通过值传递,什么时候复制什么时候不复制,什么类型是可变的,什么不是。 最佳答案 python(和大多数主流语言)中的对象作为引用传递。如果我们以numpy为例,通过索引现有数组创建的"new"数组只是原始数组的View。例如:importnu

【Numpy-矩阵库~python】

目录numpy学习(续)转置矩阵matlib.empty()numpy.matlib.zeros()numpy.matlib.ones()numpy.matlib.eye()numpy.matlib.rand()二维矩阵n维数组以上所有程序对应运行结果如下:pandas每日一练:运行结果如下:71、以5个数据作为一个数据滑动窗口,计算这五个数据总和(sku_cost_prc)运行结果如下:72、将sku_cost_prc5日均线、20日均线与原始数据绘制在同一个圈上运行效果如下:73、将数据往后移动5天运行结果如下:74、将数据往前移动5天运行结果如下:75、使用expanding函数计算sk

python - Numpy longdouble 算术似乎不在 long double with conversion

我一直在玩C99的quadprecision长双。据我了解,(特定于平台的)numpy支持longdouble和128位float。我遇到了一些我无法解释的事情。给定:>>>importnumpyasnp计算一个需要多于64位但少于128位的数字来表示为一个整数:>>>2**64+218446744073709551618#notethe'8'attheend>>>int(2**64+2)18446744073709551618#sameobviously如果我calculateC99128位长double中的相同数字,我得到18446744073709551618.000000现在,

python - numpy.core.multiarray 导入失败

我使用以下命令来了解我正在使用的numpy版本pipshownumpy输出如下所示---Name:numpyVersion:1.8.2Location:/usr/lib/python2.7/dist-packagesRequires:然而,当我运行matplotlib时,出现错误RuntimeError:modulecompiledagainstAPIversionabutthisversionofnumpyis9frommatplotlibimportpyplotaspltFile"/usr/local/lib/python2.7/dist-packages/matplotlib/p

python - Numpy:为什么 'a += a.T' 不起作用?

如scipy讲义中所述,这不会按预期工作:a=np.random.randint(0,10,(1000,1000))a+=a.Tassertnp.allclose(a,a.T)但是为什么?作为View如何影响此行为? 最佳答案 a+=a.T就地求和(在处理时使用Viewa.T),所以你最终得到一个非对称矩阵你可以很容易地检查这个,即我得到了:In[3]:aOut[3]:array([[6,15,7,...,8,9,2],[15,6,9,...,14,9,7],[7,9,0,...,9,5,8],...,[8,23,15,...,6,

python - numpy中多维数组的自相关

我有一个二维数组,即也是数组的序列数组。对于每个序列,我想计算自相关,因此对于(5,4)数组,我会得到5个结果,或维度(5,7)的数组。我知道我可以在第一个维度上循环,但那很慢而且是我最后的选择。还有别的办法吗?谢谢!编辑:根据选择的答案加上mtrw的评论,我有以下功能:defxcorr(x):"""FFTbasedautocorrelationfunction,whichisfasterthannumpy.correlate"""#xissupposedtobeanarrayofsequences,ofshape(totalelements,length)fftx=fft(x,n=(

python - 谁能给我解释一下 numpy.indices()?

我已经多次阅读有关np.indices()的文档,但我似乎无法理解它的内容。我已经在很多事情上使用它来了解它的作用,但我仍然无法真正理解它。也许问题是我是编程的初学者,所以我无法理解描述它的文字背后的想法。此外,我不是以英语为母语的人(尽管我对此没有任何问题)。我将非常感谢更简单的解释,可能是一些例子。谢谢。 最佳答案 假设您有一个矩阵M,其第(i,j)个元素等于M_ij=2*i+3*j定义这个矩阵的一种方法是i,j=np.indices((2,3))M=2*i+3*j产生array([[0,3,6],[2,5,8]])换句话说,n

python - 将 numpy 记录数组转换为字典列表的有效方法

如何转换下面的numpy记录数组:recs=[('Bill',31,260.0),('Fred',15,145.0)]r=rec.fromrecords(recs,names='name,age,weight',formats='S30,i2,f4')像这样的字典列表:[{'name':'Bill','age':31,'weight':260.0},'name':'Fred','age':15,'weight':145.0}] 最佳答案 我不确定是否有内置函数,但下面可以完成这项工作。>>>[dict(zip(r.dtype.nam

python - 识别二维 numpy 数组中的连续区域

我有一个大的numpy数组,我已经对其应用了过滤器。我想识别这个掩码数组中的连续区域。在这里,我将一个区域定义为连续的,如果对于任何索引(x1,y1)到任何其他索引(x2,y2),它们属于同一区域如果沿着轴(对角线是有效步长)存在一条由True值组成的路径。这可能不像一张简单的图片那么清晰。给定面具:00100000100000011000000000111000010应该识别出三个区域,这样输出类似于[[[0,2],[1,1],[2,1],[2,2]],[[3,5],[3,6],[4,5]],[[4,0]]]我想使用numpy中内置的东西,而不用自己写FloodFill算法。对文档进