index 1 ist out of bounds für die Achse 0, mit der Größe 1
Ich weiß nicht, warum ich eine Fehlermeldung von index. Ich bin ganz neu bei python und bin deshalb nicht in der Lage, herauszufinden, was zu tun ist. Ich glaube, ich bin initialzing einige falsche Dimensionen, aber ich bin nicht in der Lage, es zu brechen.
import numpy as np
import matplotlib as plt
x = np.array([45, 68, 41, 87, 61, 44, 67, 30, 54, 8, 39, 60, 37, 50, 19, 86, 42, 29, 32, 61, 25, 77, 62, 98, 47, 36, 15, 40, 9, 25, 34, 50, 61, 75, 51, 96, 20, 13, 18, 35, 43, 88, 25, 95, 68, 81, 29, 41, 45, 87,45, 68, 41, 87, 61, 44, 67, 30, 54, 8, 39, 60, 37, 50, 19, 86, 42, 29, 32, 61, 25, 77, 62, 98, 47, 36, 15, 40, 9, 25, 34, 50, 61, 75, 51, 96, 20, 13, 18, 35, 43, 88, 25, 95, 68, 81, 29, 41, 45, 87])
len_x = len(x)
mean = np.mean(x)
xup = np.zeros(shape=(1,120))
for i in range(len_x) :
xup[i] = (x[i] - mean) ** 2
xup_sum = np.sum(xup)
var = xup_sum / len_x
std_dev = var ** 0.5
z = np.zeros(shape = (1,120))
for i in range(len_x) :
z[i] = (x[i] - mean)/std_dev
print("Mean :", mean)
print("Standard_dev :",std_dev)
print("Variance : ",var)
- Warum hast du
xup
einem zwei-dimensionalen array mit Form (1, 120)? Versuchen Sie, es ein-dimensional:xup = np.zeros(shape=120)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie wirklich uns sagen, wo der Fehler aufgetreten ist. Aber ich kann raten:
(Ähnlich
z
Schleife folgt)Ich fügte hinzu, eine implizite
,:
. Ihrexup[i]
ist die Indizierung der ersten dimension. Aber das ist nur Größe 1. Wie geschaffen, es ist der 2. dimension, die groß ist.xup[0,i]
ist die richtige Indexierung.Warum ist
xup
2d mit der (1,120) Form? Warum nicht die gleiche Form wiex
(was ich davon ausgehen ist (120,))?xup = np.zeros(len_x)
.Besser noch mit einem richtigen
numpy
array-Berechnung:Jedoch diese
xup
hat die Form (100,), die gleichen wiex
.Sind Sie bereits mit
np.mean(x)
die arbeitet auf der ganzenx
. Operatoren wie-
und**
auch tun.(Früher würd ich schlug die Verwendung
np.zeros_like(x)
, aber dann erkannte, dass Sie es schaffen würde, ein integer-array wiex
. Zuweisen von float-Werten aus der Berechnung, dass würde Probleme geben. Wenn du eine zuweisen und füllen Schleife, die Sie brauchen, um Aufmerksamkeit, um sowohl die Form und dtype von Ziel-array.)xup
ist 2-dimensional. Also anstattxup[i]
müssten Siexup[0][i]
Nur fix diese 2 Orte:
Und dann wieder hier:
Wäre dies die Datei, die du oben gepostet mit den 2 änderungen:
xup
ist ein zwei-dimensionales numpy-array, so dass anstelle vonxup[0][i]
sollte esxup[0, i]
.