Je me demandais à quoi servait la virgule lors du découpage Python - j'ai un exemple qui semble fonctionner, mais la ligne qui me semble bizarre est
p = 20*numpy.log10(numpy.abs(numpy.fft.rfft(data[:2048, 0])))
Maintenant, je sais que lors du découpage d'un tableau, le premier nombre est le début, le suivant est la fin et le dernier est l'étape, mais que désigne la virgule après le numéro de fin? Merci.
Il est utilisé pour extraire une colonne spécifique d'un tableau 2D. Reportez-vous aux premiers exemples ici .
Votre exemple extraira donc la colonne 0 (la première colonne) des 2048 premières lignes (0 à 2047). Notez cependant que cette syntaxe ne fonctionnera que pour les tableaux numpy et non pour les listes générales python.
Empiriquement - créer un tableau à l'aide de numpy
m = np.fromfunction(lambda i, j: (i +1)* 10 + j + 1, (9, 4), dtype=int)
qui assigne un tableau comme ci-dessous à m
array(
[[11, 12, 13, 14],
[21, 22, 23, 24],
[31, 32, 33, 34],
[41, 42, 43, 44],
[51, 52, 53, 54],
[61, 62, 63, 64],
[71, 72, 73, 74],
[81, 82, 83, 84],
[91, 92, 93, 94]])
Maintenant pour la tranche
m[:,0]
nous donnant
array([11, 21, 31, 41, 51, 61, 71, 81, 91])
J'ai peut-être mal interprété Khan Academy (alors prenez avec du grain de sel):
En termes d'algèbre linéaire,
m[:,n]
prend le vecteur de colonnenth
de la matricem
Voir la note d'Abhranil comment cette interprétation spécifique ne s'applique qu'à numpy
Il tranche avec un tuple. La signification exacte du tuple dépend de l'objet à découper. Dans les tableaux NumPy, il effectue une tranche à m dimensions sur un tableau à n dimensions.
>>> class C(object):
... def __getitem__(self, val):
... print val
...
>>> c = C()
>>> c[1:2,3:4]
(slice(1, 2, None), slice(3, 4, None))
>>> c[5:6,7]
(slice(5, 6, None), 7)