草庐IT

pagerank_numpy

全部标签

python - Numpy 向量化,使用列表作为参数

numpyvectorize函数很有用,但当函数参数是列表而不是标量时,它的表现不佳。例如:importnumpyasnpdeff(x,A):print"type(A)=%s,A=%s"%(type(A),A)returnsum(A)/xX=np.linspace(1,2,10)P=[1,2,3]f2=np.vectorize(f)f(X,P)f2(X,P)给予:type(A)=,A=[1,2,3]type(A)=,A=1Traceback(mostrecentcalllast):File"vectorize.py",line14,inf2(X,P)File"/usr/local/li

python - 带下划线的 NumPy 类型 : `int_` , `float_` 等

int_、float_等中下划线后缀的意义是什么? 最佳答案 来自GuidetoNumpy的第21页通过TEOliphant:NamesforthedatatypesthatwouldclashwithstandardPythonobjectnamesarefollowedbyatrailingunderscore,’’.ThesedatatypesaresonamedbecausetheyusethesameunderlyingprecisionasthecorrespondingPythondatatypes....Thearr

Python NumPy : How to fill a matrix using an equation

我想初始化一个矩阵A,使用等式A_i,j=f(i,j)得到一些f(它是这是什么并不重要)。我怎样才能简洁地避免出现两个for循环的情况? 最佳答案 numpy.fromfunction符合这里的要求。来自文档的示例:>>>importnumpyasnp>>>np.fromfunction(lambdai,j:i+j,(3,3),dtype=int)array([[0,1,2],[1,2,3],[2,3,4]]) 关于PythonNumPy:Howtofillamatrixusingane

python - 欺骗 numpy/python 来表示非常大和非常小的数字

我需要在低至-150的范围内计算以下函数的积分:importnumpyasnpfromscipy.specialimportndtrdefmy_func(x):returnnp.exp(x**2)*2*ndtr(x*np.sqrt(2))问题是这部分函数np.exp(x**2)趋于无穷大——当x的值小于大约-26时,我得到inf。还有这部分功能2*ndtr(x*np.sqrt(2))相当于fromscipy.specialimporterf1+erf(x)趋向于0。所以,一个非常非常大的数字乘以一个非常非常小的数字应该会得到一个合理大小的数字——但是,python却给了我nan.我该怎

python - 属性错误 : 'numpy.ndarray' object has no attribute 'median'

我可以对numpy数组执行大量统计,但“中位数”返回属性错误。当我执行“dir(np)”时,我确实看到列出了中值方法。(newpy2)7831c1c083a2:srcscaldara$pythonPython2.7.12|ContinuumAnalytics,Inc.|(default,Jul22016,17:43:17)[GCC4.2.1(BasedonAppleInc.build5658)(LLVMbuild2336.11.00)]ondarwinType"help","copyright","credits"or"license"formoreinformation.Anacon

python - 用 NumPy 向量化 groupby

Pandas有一个广泛使用的groupby根据相应的映射拆分DataFrame的工具,您可以从中对每个子组应用计算并重新组合结果。这可以在没有原生Pythonfor循环的情况下在NumPy中灵活地完成吗?使用Python循环,这看起来像:>>>importnumpyasnp>>>X=np.arange(10).reshape(5,2)>>>groups=np.array([0,0,0,1,1])#Splitupelements(rows)of`X`basedontheirelementwisegroup>>>np.array([X[groups==i].sum()foriinnp.un

python - Numpy 中的向量化赋值

假设我有一个大型2Dnumpy数组,例如1000x1000元素。我还有两个长度为L的一维整数数组和一个相同长度的浮点一维数组。如果我想简单地根据整数数组将float分配到原始数组中的不同位置,我可以这样写:mat=np.zeros((1000,1000))int1=np.random.randint(0,999,size=(50000,))int2=np.random.randint(0,999,size=(50000,))f=np.random.rand(50000)mat[int1,int2]=f但如果发生碰撞,即多个float对应于一个位置,则除最后一个之外的所有float都将被

python - 排列numpy中每列内容的最佳方法

有效置换numpy数组中每一列内容的最佳方法是什么?我有这样的东西:>>>arr=np.arange(16).reshape((4,4))>>>arrarray([[0,1,2,3],[4,5,6,7],[8,9,10,11],[12,13,14,15]])>>#Shuffleeachcolumnindependentlytoobtainsomethinglikearray([[8,5,10,7],[12,1,6,3],[4,9,14,11],[0,13,2,15]]) 最佳答案 如果你的数组是多维的,np.random.permu

python - numpy 的基本操作是否矢量化,即它们是否使用 SIMD 操作?

我正在做一些性能分析,我想知道,当数据类型已知(double)时,numpy是否对其标准数组操作进行矢量化。a,b=(somenumpyarrays)c=a+b#Isthisvectorized?编辑:此操作是否矢量化,即计算是否包含SIMD操作? 最佳答案 是的,他们是。/**Thisfileisforthedefinitionsofsimdvectorizedoperations.**Currentlycontainssse2functionsthatarebuiltonamd64,x32or*non-genericbuilds

python - 使用 Cython 优化 numpy.dot

我有以下一段代码,我想使用Cython对其进行优化:sim=numpy.dot(v1,v2)/(sqrt(numpy.dot(v1,v1))*sqrt(numpy.dot(v2,v2)))dist=1-simreturndist我已经编写并编译了.pyx文件,当我运行代码时,我没有看到任何显着的性能改进。根据Cython文档,我必须添加c_types。Cython生成的HTML文件表明瓶颈是点积(当然这是意料之中的)。这是否意味着我必须为点积定义一个C函数?如果是,我该怎么做?编辑:经过一些研究,我想出了以下代码。改进只是微不足道的。我不确定我是否可以做些什么来改进它:from__fu