Odpowiedzi:
numpy.array
jest tylko funkcją ułatwiającą tworzenie ndarray
; to nie jest sama klasa.
Możesz także utworzyć tablicę za pomocą numpy.ndarray
, ale nie jest to zalecany sposób. Z dokumentacji numpy.ndarray
:
Tablice powinny być konstruowane z użyciem
array
,zeros
alboempty
... Parametry podane odnoszą się do metody niskiego poziomu (ndarray(...)
) dla instancji tablicę.
Większość treści implementacji znajduje się w kodzie C, tutaj w wielu tablicach , ale możesz zacząć patrzeć na interfejsy ndarray tutaj:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
np.array
to nie jest klasa, jak to często robię. x = np.array([1,2.1,3])
if isinstance(x,np.array): # will give you a TypeError
array_getarray
to implementacja numpy.ndarray.__array__
. numpy.array
zaczyna się _array_fromobject
, przynajmniej w obecnej implementacji.
numpy.array
jest funkcją, która zwraca a numpy.ndarray
. Nie ma typu obiektu numpy.array.
Tylko kilka wierszy przykładowego kodu, aby pokazać różnicę między numpy.array i numpy.ndarray
Krok rozgrzewki: stwórz listę
a = [1,2,3]
Sprawdź typ
print(type(a))
Dostaniesz
<class 'list'>
Zbuduj tablicę (z listy) za pomocą np.array
a = np.array(a)
Lub możesz pominąć krok rozgrzewki, bezpośrednio
a = np.array([1,2,3])
Sprawdź typ
print(type(a))
Dostaniesz
<class 'numpy.ndarray'>
który informuje, że typ tablicy numpy to numpy.ndarray
Możesz także sprawdzić typ według
isinstance(a, (np.ndarray))
i dostaniesz
True
Każdy z dwóch poniższych wierszy wyświetli komunikat o błędzie
np.ndarray(a) # should be np.array(a)
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))
numpy.ndarray()
jest klasą, podczas gdy numpy.array()
jest metodą / funkcją do utworzenia ndarray
.
W Numpy Docs, jeśli chcesz utworzyć tablicę z ndarray
klasy, możesz to zrobić na dwa sposoby, jak podano:
1 za pomocą array()
, zeros()
lub empty()
metody:
Tablice powinny być konstruowane przy użyciu macierzy, zera lub puste (patrz Patrz również opisano poniżej). Podane tutaj parametry odnoszą się do metody niskiego poziomu ( ndarray(…)
) do tworzenia instancji tablicy.
2- ndarray
bezpośrednio z klasy:
Istnieją dwa tryby tworzenia tablicy za pomocą __new__
: Jeśli bufor to Brak, wówczas używany jest tylko kształt, typ i kolejność. Jeśli bufor jest obiektem ujawniającym interfejs bufora, wówczas wszystkie słowa kluczowe są interpretowane.
Poniższy przykład podaje losową tablicę, ponieważ nie przypisaliśmy wartości bufora:
np.ndarray(shape=(2,2), dtype=float, order='F', buffer=None) array([[ -1.13698227e+002, 4.25087011e-303], [ 2.88528414e-306, 3.27025015e-309]]) #random
innym przykładem jest przypisanie obiektu tablicy do przykładu bufora:
>>> np.ndarray((2,), buffer=np.array([1,2,3]), ... offset=np.int_().itemsize, ... dtype=int) # offset = 1*itemsize, i.e. skip first element array([2, 3])
z powyższego przykładu zauważamy, że nie możemy przypisać listy do „bufora” i musieliśmy użyć numpy.array (), aby zwrócić obiekt ndarray dla bufora
Wniosek: użyj, numpy.array()
jeśli chcesz zrobić numpy.ndarray()
obiekt „
Myślę, że z np.array()
Tobą możesz stworzyć C tak, jakbyś wspomniał o kolejności, kiedy zaznaczysz, że używasz np.isfortran()
, mówi false. ale z np.ndarrray()
określeniem zamówienia tworzy się na podstawie podanego zamówienia.