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