2015-03-05 14 views
7

Jaki jest odpowiednik liczby Octave w postaci NumPy w postaci j? Jak mogę użyć j w Pythonie?Równoważnik j w NumPy

W oktawie:

octave:1> j 
ans = 0 + 1i 
octave:1> j*pi/4 
ans = 0.00000 + 0.78540i 

Ale w Pythonie:

>>> import numpy as np 
>>> np.imag 
<function imag at 0x2368140> 
>>> np.imag(3) 
array(0) 
>>> np.imag(3,2) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: imag() takes exactly 1 argument (2 given) 
>>> np.imag(32) 
array(0) 
>>> 
>>> 0+np.imag(1) 
1 

Odpowiedz

15

W Pythonie 1j lub 0+1j jest literałem złożonego typu. Można nadawać że do tablicy przy użyciu wyrażeń, np

In [17]: 1j * np.arange(5) 
Out[17]: array([ 0.+0.j, 0.+1.j, 0.+2.j, 0.+3.j, 0.+4.j]) 

utworzyć tablicę z literałów:

In [18]: np.array([1j]) 
Out[18]: array([ 0.+1.j]) 

Należy pamiętać, że co Michael9 pisał tworzy kompleks, a nie kompleks tablica:

In [21]: np.complex(0,1) 
Out[21]: 1j 
In [22]: type(_) 
Out[22]: complex 
4

można utworzyć w razie potrzeby lub używać 1j których wystąpienie złożonego klasy

>>> 1j #complex object 
1j 
>>> type(1j) 
<class 'complex'> 
>>> j = np.complex(0,1) #create complex number 
>>> j 
1j