2
votes

Ajout de valeurs à une tranche sur un tableau np

J'ai un tableau numpy que j'ai initialisé et qui ressemble à ceci:

pulse[0][0][0] = 1
pulse[0][1:10001][0] = data

Je veux remplir ce tableau avec des données que je lis à partir d'un fichier. Voici un exemple de la façon dont je veux le remplir:

pulse = np.ndarray(shape = (300, 10001, 3), dtype = float) 

où data est un tableau de 10000 éléments.

Cela pourrait-il être fait en utilisant append ou une autre fonction de numpy?


2 commentaires

Je vous recommande également de vérifier scipy-cookbook.readthedocs.io/items/ViewsVsCopies. html


@yatu Merci pour la recommandation! J'aurai un meilleur regard dessus


3 Réponses :


1
votes

Le problème avec votre approche actuelle est que vous affectez à une copie des données, et par conséquent, le tableau d'origine reste inchangé. À la place, attribuez-lui une vue du tableau (appelée attribution de tranche ), de cette façon vous modifierez sur place:

pulse[0, 1:10001, 0] = data


0 commentaires

1
votes

Cela devrait fonctionner:

pulse[0,0,0]= 1
pulse[0,1:1001,0]= data


0 commentaires

1
votes
pulse[0][0][0] = 1
pulse[0][1:10001][0] = data
this will work. the dimension of data must be exactly the size of the slice. Also instead of assigning an array, if you assign a constant, all the elements in the slice will be assigned that value.

0 commentaires