草庐IT

矢量化

全部标签

python - 计算两列中任一列中字符串出现次数的矢量化方法

我有一个类似于thisquestion的问题,但只是不同到不能用相同的解决方案来解决...我有两个数据帧,df1和df2,如下所示:importpandasaspdimportnumpyasnpnp.random.seed(42)names=['jack','jill','jane','joe','ben','beatrice']df1=pd.DataFrame({'ID_a':np.random.choice(names,20),'ID_b':np.random.choice(names,20)})df2=pd.DataFrame({'ID':names})>>>df1ID_aID_

python - 向量化 NumPy 数组中的迭代加法

对于二维索引的随机数组中的每个元素(可能有重复项),我想“+=1”到二维零数组中的相应网格。但是,我不知道如何优化计算。使用标准的for循环,如下所示,definteradd():U=100input=np.random.random(size=(5000,2))*Uidx=np.floor(input).astype(np.int)grids=np.zeros((U,U))foriinrange(len(input)):grids[idx[i,0],idx[i,1]]+=1returngrids运行时间可能非常重要:>>timeit(interadd,number=5000)43.6

python - 向量化 numpy.random.multinomial

我正在尝试向量化以下代码:foriinxrange(s.shape[0]):a[i]=np.argmax(np.random.multinomial(1,s[i,:]))s.shape=400x100[给定]。a.shape=400[预期]。s是一个二维矩阵,其中包含成对的概率。期望多项式从s矩阵的每一行中抽取一个随机样本,并将结果存储在向量a中。 最佳答案 在comments,据说有人试图将这个here向量化然而,这不仅仅是一次尝试。也是这个问题的完整解决方案。问题的目标是获取包含多项式事件的1的位置的索引。也就是说,以下实现[0

python - Python 中的图像梯度矢量场

我正在尝试获取GradientVectorField使用Python处理图像(类似于thismatlabquestion)。这是原图:这是我的代码:importnumpyasnpimportmatplotlib.pyplotaspltimportImagefromPILimportImageFilterI=Image.open('test.png').transpose(Image.FLIP_TOP_BOTTOM)I=I.filter(ImageFilter.BLUR)p=np.asarray(I)w,h=I.sizey,x=np.mgrid[0:h:500j,0:w:500j]dy,

python - 有没有比 Cairo 更好的用 Python 绘制矢量图形的库?

...并不是说我有什么反对开罗的——事实上我喜欢它。安装Python绑定(bind)非常困难,尤其是在Mac上(请参阅有关在OSX上安装pycairo的所有SO问题)。有更好的选择吗?编辑:关于更多上下文,我正在创建一个Web服务,我希望它易于部署,最好使用标准安装channel;不能简单地使用pip或easy_install会给许多部署平台上的部署过程带来复杂性。此外,我希望任何人都可以轻松地设置虚拟环境并在其本地计算机上对应用程序进行开发。同样,易于安装是这里的重点。 最佳答案 Kiva,关于Enable的部分,是一个抽象矢量渲

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 向量化 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 的基本操作是否矢量化,即它们是否使用 SIMD 操作?

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

python - 如何加速矢量叉积计算

您好,我是新手,正在尝试使用numpy进行一些计算。我在一次特定计算中经历了很长的时间,无法找到任何更快的方法来实现同样的事情。基本上它是射线三角形相交算法的一部分,我需要计算两个不同大小的矩阵的所有向量交叉积。我使用的代码是:allhvals1=numpy.cross(dirvectors[:,None,:],trivectors2[None,:,:])dirvectors是n*向量(xyz)的数组,trivector2是m*vectors(xyz)的数组)。allhvals1是大小为n*M*vector(xyz)的叉积数组。这有效,但速度很慢。它本质上是每个数组中每个向量的n*m矩