Home > Back-end >  Computing an array with a given shape containing powers of x = complex(0, 1)
Computing an array with a given shape containing powers of x = complex(0, 1)

Time:05-03

I am trying to create a 9-lines array (shape = (9,)) containing

powers of x = complex(0, 1): 1, x, x**2, ..., x**8.

I do not know if there is someone who knows what is meant by the statement powers of x = complex(0, 1) and how in your opinion this series might be computed.

Thanks

CodePudding user response:

If I understand correctly, you can use:

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

output:

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])

If by 9 lines you rather mean a shape of (9,1), use instead:

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

output:

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]])

explanation:

np.arange(9) is creating the array array([0, 1, 2, 3, 4, 5, 6, 7, 8]), and vectorization of x**powers is computing x**power for each power of powers

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
#         ])
  • Related