计算具有给定形状的数组,其中包含 x = complex(0, 1) 的幂

Computing an array with a given shape containing powers of x = complex(0, 1)

我正在尝试创建一个包含

的 9 行数组(形状 = (9,))

x 的幂 = 复数 (0, 1): 1, x, x**2, ..., x**8.

我不知道是否有人知道 x = complex(0, 1) 的语句幂是什么意思,以及您认为这个级数是如何计算的。

谢谢

如果我理解正确,你可以使用:

out = complex(0,1)**np.arange(9)

输出:

array([ 1.+0.j,  0.+1.j, -1.+0.j, -0.-1.j,  1.+0.j,  0.+1.j, -1.+0.j,
       -0.-1.j,  1.+0.j])

如果 9 你宁愿指的是 (9,1) 的形状,请改用:

out = complex(0,1)**np.arange(9)[:,None]

输出:

array([[ 1.+0.j],
       [ 0.+1.j],
       [-1.+0.j],
       [-0.-1.j],
       [ 1.+0.j],
       [ 0.+1.j],
       [-1.+0.j],
       [-0.-1.j],
       [ 1.+0.j]])

解释:

np.arange(9) 正在创建数组 array([0, 1, 2, 3, 4, 5, 6, 7, 8])x**powers 的向量化正在为 powers[= 的每个 power 计算 x**power 21=]

x = complex(0, 1)
# 0 + 1j

powers = np.arange(9)
# array([0, 1, 2, 3, 4, 5, 6, 7, 8])

x**powers
# array([ 1.+0.j,   1
#         0.+1.j,   x
#        -1.+0.j,   x**2
#        -0.-1.j,   x**3
#         1.+0.j,
#         0.+1.j,
#        -1.+0.j,
#        -0.-1.j,
#         1.+0.j,   x**8
#         ])