|
Autor |
Vektor in Python kreieren |
|
evinda
Aktiv  Dabei seit: 16.12.2013 Mitteilungen: 1390
 | Themenstart: 2022-01-22
|
Hallo!!!
Ich versuche das folgende Programm in python zu schreiben:
Kreieren Sie ein Vektor A mit zufällig gewählte ganze Zahlen zwischen 1 und 10. Im Anschluss, kreieren Sie einen zweiten Vektor, der die Werte von A hat, jedoch sollen zwischen jedem Zahlenpaar 2 Nullen eingefügt werden.
Z.b. wenn A=np.array([1,1,1]) dann ist der neue Vektor array([1,0,0,1,0,0,1]).
Ich habe den folgenden Code geschrieben:
\sourceon python
import numpy as np
A = np.random.randint(1, 11, 5)
print(A)
B=[]
value1=True
for i in range(5):
if (value1==True):
B[i]=A[i]
value1==False
else:
B[i]=0
B[i+1]=0
value1=True
print(B)
\sourceoff
Ich bekomme die folgende Fehlermeldung:
[ 1 2 8 3 10]
Traceback (most recent call last):
File "main.py", line 8, in
B[i]=A[i]
IndexError: list assignment index out of range
Warum kann man nicht B[i]=A[i] benutzen?
Ich hatte mir auch überlegt ob man slicing benutzen könnte, aber wusste nicht genau wie. Wäre es eine andere Möglichkeit ?
|
Profil
|
zippy
Senior  Dabei seit: 24.10.2018 Mitteilungen: 3589
 | Beitrag No.1, eingetragen 2022-01-22
|
Wenn du an eine Liste oder einen NumPy-Vektor ein Element anfügen willst, musst du append benutzen.
Du könntest beispielsweise das erste Element aus A unverändert nach B übernehmen (ich gehe mal davon aus, dass A mindestens ein Element hat)
\sourceon python
B = np.array(A[0])
\sourceoff
und die restlichen dann zusammen mit je zwei Nullen anhängen:
\sourceon python
np.append(B, [[0, 0, a] for a in A[1:]])
\sourceoff
--zippy
|
Profil
|
evinda
Aktiv  Dabei seit: 16.12.2013 Mitteilungen: 1390
 | Beitrag No.2, vom Themenstarter, eingetragen 2022-01-23
|
\quoteon(2022-01-22 15:01 - zippy in Beitrag No. 1)
Wenn du an eine Liste oder einen NumPy-Vektor ein Element anfügen willst, musst du append benutzen.
Du könntest beispielsweise das erste Element aus A unverändert nach B übernehmen (ich gehe mal davon aus, dass A mindestens ein Element hat)
\sourceon python
B = np.array(A[0])
\sourceoff
und die restlichen dann zusammen mit je zwei Nullen anhängen:
\sourceon python
np.append(B, [[0, 0, a] for a in A[1:]])
\sourceoff
--zippy
\quoteoff
Ich verstehe. Vielen Dank für die Hilfe ! 😃
|
Profil
|
evinda hat die Antworten auf ihre/seine Frage gesehen. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|