TypeError: zip-argument #2 muss der support iteration
Ich bekam eine Fehlermeldung TypeError: zip-argument #2 muss der support iteration.
data = libraries.pd.read_csv('a.csv',header=1, parse_dates=True)
datas = DataCleaning.DataCleaning(data)
datas.cleaning(media)
calDf = datas.getDatas()
array_x = libraries.np.int32(libraries.np.zeros(len(calDf)))
array_y = libraries.np.int32(libraries.np.zeros(len(calDf)))
if len(calDf) > 1:
for num in range(len(calDf)):
array_x[num] = calDf.iloc[num,0]
array_y[num] = calDf.iloc[num,1]
def nonlinear_fit(x,a,b):
return b * libraries.np.exp(x / (a+x))
prameter_initial = libraries.np.array([0,0])
try:
param, cov = libraries.curve_fit(nonlinear_fit, array_x, array_y, maxfev=5000)
except RuntimeError:
print("Error - curve_fit failed")
li_result = []
li_result = zip(y, array_x, array_y)
Ich denke, das Teil zip(y, array_x, array_y)
ist falsch, da die zip ' s Argumente sind nicht von der Liste geben,so schrieb ich
for i in y:
li_result = []
li_result = zip(y, array_x[i], array_y[i])
aber ich bekam eine Fehlermeldung,
li_result = zip(y, array_x[i], array_y[i])
IndexError: only integers, slices (`:`), ellipsis (`...`),
numpy.newaxis (`None`) and integer or boolean arrays are valid indices
So, ich kann nicht verstehen, wie man dieses Problem beheben.
Was soll ich tun?
Sagen Sie uns, die Natur des
y ist ein string-Typ, und es ist der item name. array_x ist Typ int,es ist der Preis. array_y ist Typ int,es ist Lager zählen.Ich will eine Liste machen von diesen Daten,außerdem konnte ich die Liste alle Artikel-Daten.Also meine ideal-Liste wie [('itemA', 1000, 100), ('itemB', 2000, 2000), ('itemC', 300, 5000)].
Ich lese zip-Funktion ist nur für die Serie(wie Liste). y, array_x und array_y sind Zeichenfolge&int,so ist es falsch?
so
Nein.y ist Element name.y ist in itemNameList wie [itemA itemB,itemC] y ist, diese Elemente der Liste.
y
, array_x
und array_y
. Wenn arrays erzählen uns die Form. Und was ist der Zweck der zip
? Warum ist li_result
doppelt vergeben?y ist ein string-Typ, und es ist der item name. array_x ist Typ int,es ist der Preis. array_y ist Typ int,es ist Lager zählen.Ich will eine Liste machen von diesen Daten,außerdem konnte ich die Liste alle Artikel-Daten.Also meine ideal-Liste wie [('itemA', 1000, 100), ('itemB', 2000, 2000), ('itemC', 300, 5000)].
Ich lese zip-Funktion ist nur für die Serie(wie Liste). y, array_x und array_y sind Zeichenfolge&int,so ist es falsch?
so
y
ist eine Liste von strings?Nein.y ist Element name.y ist in itemNameList wie [itemA itemB,itemC] y ist, diese Elemente der Liste.
InformationsquelleAutor user21063 | 2017-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt wie Sie haben drei arrays
itemNameList
,array_x
, undarray_y
Vorausgesetzt, Sie haben alle die gleiche Form, können Sie nur:
BEARBEITEN
Dein problem ist, dass
array_x
undarray_y
sind nicht die tatsächlichennumpy.array
Objekte, aber wahrscheinlichnumpy.int32
(oder einige andere nicht-wiederholenden) Objekten:Vielleicht Ihrer Initialisierung wird nicht wie erwartet, oder Sie werden verändert aus arrays irgendwo in deinem code?
drucken
array_x.shape
undarray_y.shape
und Antwort mit ErgebnisIch schrieb print(array_x.Form) print(array_y.Form), aber ()() drucken.
thx ur commetns.array_x und array_y die Initialisierung noch nicht abgeschlossen haben,so ist es falsch?Ich dachte array_x und array_y sind variabel, so dass Ihre Initialisierung nicht erforderlich.
sind Sie sicher, dass
array_x = libraries.np.int32(libraries.np.zeros(len(calDf)))
funktioniert wie Sie es erwarten? Istarray_x
iterierbar direkt nach dieser Zeile?InformationsquelleAutor Crispin
Hier ist, wie
zip
(oder Liste(zip-in py3), kann wiederum mehrere Listen in eine Liste von Tupeln:Nur um zu zeigen, dass ein array gepackt werden können wie eine Liste
InformationsquelleAutor hpaulj