Python随机替换数组中的每个虚构值

时间:2015-06-23 08:07:31

标签: python arrays numpy complex-numbers replaceall

我有一个

array([[ 0.01454911+0.j,  0.01392502+0.00095922j,
         0.00343284+0.00036535j, 0.00094982+0.0019255j ,
         0.00204887+0.0039264j , 0.00112154+0.00133549j,  0.00060697+0.j],
       [ 0.02179418+0.j,  0.01010125-0.00062646j,
         0.00086327+0.00495717j, 0.00204473-0.00584213j,
         0.00159394-0.00678094j, 0.00121372-0.0043044j , 0.00040639+0.j]])

我需要一个解决方案,这使我有可能用以下生成的随机值替换虚构的组件:

numpy.random.vonmises(mu, kappa, size=size)

生成的数组需要与第一个数组的形式相同。

3 个答案:

答案 0 :(得分:0)

尝试使用这种方法:

  • 将您的数字存储为二维数组:Real-part和Imaginary-part。
  • 然后用随机选择的数字替换虚部。

答案 1 :(得分:0)

循环数字并将它们设置为您喜欢的值。需要定义mu函数的参数kappanumpy.random.vonmises,因为它们在以下示例中未定义。

import numpy as np

data = np.array([[ 0.01454911+0.j,  0.01392502+0.00095922j,
         0.00343284+0.00036535j, 0.00094982+0.0019255j ,
         0.00204887+0.0039264j , 0.00112154+0.00133549j,  0.00060697+0.j],
       [ 0.02179418+0.j,  0.01010125-0.00062646j,
         0.00086327+0.00495717j, 0.00204473-0.00584213j,
         0.00159394-0.00678094j, 0.00121372-0.0043044j , 0.00040639+0.j]])

def setRandomImag(c):
    c.imag = np.random.vonmises(mu, kappa, size=size)
    return c

data = [ setRandomImag(i) for i in data]

答案 2 :(得分:0)

n_epochs = 2
n_freqs = 7
# form giving parameters for the array

data2 = np.zeros((n_epochs, n_freqs), dtype=complex)
for i in range(0,n_epochs):
     data2[i] = np.real(data[i]) + np.random.vonmises(mu, kappa) * complex(0,1)

它给我的整个n_epoch提供了相同的虚数值。不完全是我要求的,但解决了我的问题。