Réponses:
numpy.array
est juste une fonction pratique pour créer un ndarray
; ce n'est pas une classe en soi.
Vous pouvez également créer un tableau à l'aide de numpy.ndarray
, mais ce n'est pas la méthode recommandée. De la docstring de numpy.ndarray
:
Les tableaux doivent être construits en utilisant
array
,zeros
ouempty
... Les paramètres donnés ici se réfèrent à une méthode de bas niveau (ndarray(...)
) pour instancier un tableau.
La majeure partie de la viande de l'implémentation est en code C, ici en multiarray , mais vous pouvez commencer à regarder les interfaces ndarray ici:
https://github.com/numpy/numpy/blob/master/numpy/core/numeric.py
np.array
n'est pas un cours, comme je le fais souvent. x = np.array([1,2.1,3])
if isinstance(x,np.array): # will give you a TypeError
array_getarray
c'est l'implémentation de numpy.ndarray.__array__
. numpy.array
commence à _array_fromobject
, au moins dans la mise en œuvre actuelle.
numpy.array
est une fonction qui renvoie a numpy.ndarray
. Il n'y a pas de type d'objet numpy.array.
Juste quelques lignes d'exemple de code pour montrer la différence entre numpy.array et numpy.ndarray
Étape d'échauffement: construire une liste
a = [1,2,3]
Vérifiez le type
print(type(a))
Tu auras
<class 'list'>
Construire un tableau (à partir d'une liste) en utilisant np.array
a = np.array(a)
Ou, vous pouvez sauter l'étape d'échauffement, avoir directement
a = np.array([1,2,3])
Vérifiez le type
print(type(a))
Tu auras
<class 'numpy.ndarray'>
qui vous indique que le type du tableau numpy est numpy.ndarray
Vous pouvez également vérifier le type en
isinstance(a, (np.ndarray))
et vous obtiendrez
True
L'une des deux lignes suivantes vous donnera un message d'erreur
np.ndarray(a) # should be np.array(a)
isinstance(a, (np.array)) # should be isinstance(a, (np.ndarray))
numpy.ndarray()
est une classe, tandis que numpy.array()
est une méthode / fonction à créer ndarray
.
Dans numpy docs, si vous voulez créer un tableau à partir d'une ndarray
classe, vous pouvez le faire de 2 façons, comme indiqué:
1- à l'aide de array()
, zeros()
ou empty()
méthodes: les
tableaux doivent être construits à l'aide de tableaux, de zéros ou vides (voir la section Voir aussi ci-dessous). Les paramètres donnés ici font référence à une méthode de bas niveau ( ndarray(…)
) pour instancier un tableau.
2- à partir de la ndarray
classe directement:
Il existe deux modes de création d'un tableau à l'aide de __new__
: Si le tampon est None, seuls la forme, le dtype et l'ordre sont utilisés. Si buffer est un objet exposant l'interface de buffer, alors tous les mots clés sont interprétés.
L'exemple ci-dessous donne un tableau aléatoire car nous n'avons pas attribué de valeur tampon:
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
un autre exemple consiste à affecter un objet tableau à l'exemple de tampon:
>>> 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])
à partir de l'exemple ci-dessus, nous remarquons que nous ne pouvons pas attribuer une liste à "tampon" et nous avons dû utiliser numpy.array () pour renvoyer l'objet ndarray pour le tampon
Conclusion: utilisez numpy.array()
si vous voulez faire un numpy.ndarray()
objet "
Je pense qu'avec np.array()
vous, vous ne pouvez créer du C que si vous mentionnez la commande, lorsque vous vérifiez son utilisation, dites np.isfortran()
false. mais avec np.ndarrray()
lorsque vous spécifiez l'ordre qu'il crée en fonction de l'ordre fourni.