cplxarr= np.array([1+2j, 3+1j, 7-2j])
factarr= np.array([.5, .6, .2])
# desired result of cplxarr * factarr :
# np.array([.5+2j 1.8+1j 1.4-2j])
我如何设置factarr
以及我必须进行哪些操作才能达到所需的结果?如果有可能的话,也就是不需要分离实部和虚部,缩放实部,重新组合成一个新的复数向量。
这样就行了:
>>> factarr*cplxarr.real + (1j)*cplxarr.imag
array([ 0.5+2.j, 1.8+1.j, 1.4-2.j])
但不确定这是不是最好的方法。
结果表明,至少对我来说(OS-X 10.5.8、python 2.7.3、numpy 1.6.2)这个版本的速度是使用np.vectorize
的其他版本的两倍:
>>> from timeit import timeit
>>> timeit('factarr*cplxarr.real+(1j)*cplxarr.imag',setup='from __main__ import factarr,cplxarr')
21.008132934570312
>>> timeit('f(cplxarr.real * factarr, cplxarr.imag)',setup='from __main__ import factarr,cplxarr; import numpy as np; f=np.vectorize(np.complex)')
46.52931499481201
>>> timeit('f(cplxarr.real * factarr, cplxarr.imag)',setup='from __main__ import factarr,cplxarr; import numpy as np; f=np.vectorize(complex)')
44.87726283073425
目前在计时排行榜上的领先者(由eryksun在下面的评论中提议)
>>> timeit.timeit('a = cplxarr.copy(); a.real *= factarr ',setup='from __main__ import factarr,cplxarr')
8.336654901504517
以及它工作的证明:
>>> a = cplxarr.copy()
>>> a.real *= factarr
>>> a
array([ 0.5+2.j, 1.8+1.j, 1.4-2.j])
如果您想要在适当的位置执行操作(因此可以保留副本),这显然会更快。
本文向大家介绍JavaScript 复制数组的一部分,包括了JavaScript 复制数组的一部分的使用技巧和注意事项,需要的朋友参考一下 示例 该slice()方法返回数组一部分的副本。 它带有两个参数arr.slice([begin[, end]]): 开始 从零开始的索引,这是提取的开始。 结束 从零开始的索引,它是提取的末尾,会切成该索引,但不包括在内。 如果结尾为负数,则。end =ar
我有一个数组的复数。我寻求将数组中每个数字的实部和虚部剪辑到某个指定的最小值和最大值(相同的剪辑应用于实部和虚部)。例如,考虑: 我可以通过对复数组的实部和虚部调用np.clip,然后将它们相加(在将虚的裁剪数据乘以1j之后)来实现这一点。有办法用一个命令就能做到这一点吗? 不会产生预期的结果。
如何计算数组中数字的平均值? 看看我是如何获取数据的; 我想知道每个阵列的平均值,所以: 我在React工作。我从React Redux中的选择器获取数据。我用它来计算每个用户的平均评论。 代码:
我的代码: 产生同样的结果。谁能找出我做错了什么或任何其他方法来实现这一点..谢谢
我想创建一个数组,使其包含一些标识名,并且对于这些名称中的每一个,都有另一个关联的数组。我的做法是,, 执行此操作后,我得到如下结果:, 下次调用此函数时,我需要检查1-1是否存在,如果存在,我需要获取与1-1相关的列表。我该怎么做。。?如果1-1不在myArray中,我将调用其他函数。
我试图用ng repeat in Angular来重复一个多维数组的子数组。我的json对象是这样的: 我尝试了这样的东西: 然后在这个孩子的表中: