Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Python Shape-fehler
Autor
Schule Python Shape-fehler
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2495
  Themenstart: 2021-06-12

Hallo, ich mache immer denselben Fehler: irgendwas verändert, und dann kommt: x and y must have same first dimension, but have shapes (1,) and (105,) Es muß mir doch mal jemand sagen könne, wie ich diesen Fehler vermeide... es ist zu zeitaufwendig, immer denselben Fehler zu machen.... \sourceon Python \numberson import matplotlib.pyplot as plt from openpyxl import Workbook from sympy.ntheory import isprime import numpy as np from sympy import sieve from sympy import primepi from math import sqrt from collections import Counter import collections n=8 # Länge des zu untersuchenden Abschnittes, im PLT Block ändern) Ngrenze=210#2*(n*n) start=1 # erste Untersuchung ist die Normlänge = 2 * n und beginnt bei 1 nr=0 pf=0 # Primfactoren der Zahl supf=0 # Sammler der PF des Gleiters supt=0 Dif=0 stell=0 # Stellung des Schlittens pz=0 kosu=0 # Kontrollsumme y1=[] y2=[] y3=[] y4=[] y5=[] # für Kontrollsumme ptunterwusammler=[] # Hier sammelt er die PT kleiner Länge myDoppelteauswerter={} import Def_primfactoren import Def_primteiler x=np.arange(start,Ngrenze,2) for i in range(start,Ngrenze,2): # Grundgerüst print() stell+=1 for j in range(i,i+(2*n),2): # Gleiter nr+=1 pf=Def_primfactoren.def_primfactoren(j) pt=Def_primteiler.def_primteiler(j) print("j",j,"pf",pf,"pt",pt) for x in pt: if x < n: ptunterwusammler.append(x) #print("uwu",ptunterwusammler) if len(pf)>=2: supf+=1 if len(ptunterwusammler)>=2: # Hier kuckt er, omb mehr als 2, die mehr als 2 pt kleiner Wurzel haben supt+=1 if isprime(j): pz+=1 if len(pt)-len(pf)!=0: Dif+=1 ptunterwusammler=[] #y3.append(pz) #print(nr," i:",i," j:",j,"",len(pf),"pf:",pf,)# Vollständiges Listing (verlangsamt sehr) print("stell",stell,"Beg:",i,"End:",j,"Doppelte:.",supt,"pf",pf,"pt",pt) #wie oft welcher wert durchschnitt kosu=supf+pz y2.append(supf) y3.append(pz) y1.append(supt+8)# um deutlich zu machen, die 8 addiert y4.append(Dif) y5.append(kosu) if supf in myDoppelteauswerter: myDoppelteauswerter[supf]+=1 else: myDoppelteauswerter[supf]=1 supf=0 pz=0 pt1=0 supt=0 Dif=0 result=collections.OrderedDict(sorted(myDoppelteauswerter.items())) print("Auswertung:",result) plt.figure(figsize=(16,8)) plt.xlabel('x - Stellung des Schlittens (Intervalls Länge = 8)') plt.ylabel('Anzahl') plt.axis([1, Ngrenze, -1, 30]) plt.grid(True) #plt.plot(x, y2, label=['Stellung', 'Anzahl Doppelte']) #plt.legend() plt.plot(x,y1,color="black",label=['Anzahl der Doppelten (Überlappungen)']) plt.plot(x,y2,color="green",label=['Anzahl der belegte Spalten (zZ)']) plt.plot(x,y3,color="blue",label=['Anzahl der freie Spalten (PZ)']) #plt.plot(x,y4,color="red",label=['Differenz: PF-PT']) plt.plot(x,y5,color="red",label=['Kontrollsumme: PF+PT']) plt.legend() plt.show() \sourceoff Und wie kann ich eigentlich bei Spider den Fehlercode lesen lernen, der so aussieht: \sourceon Python \numberson File "//opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile execfile(filename, namespace) File "//opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile exec(compile(f.read(), filename, 'exec'), namespace) File "//Desktop/ProjLeg/PythonProgr./LanggleiterKON.py", line 95, in plt.plot(x,y1,color="black",label=['Anzahl der Doppelten (Überlappungen)']) File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2795, in plot is not None else {}), **kwargs) File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 1666, in plot lines = [*self._get_lines(*args, data=data, **kwargs)] File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 225, in __call__ yield from self._plot_args(this, kwargs) File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 391, in _plot_args x, y = self._xy_from_xy(x, y) \sourceoff da werden Zeilennummern genannt, die ich nicht sehe in meinem Spider-Fenster.... wo gibt es dafür eine Anleitung....


   Profil
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2970
  Beitrag No.1, eingetragen 2021-06-12

Solche Fehler vermeidest du, wenn du a) konkret keine Namen wie "x" mehrfach vergibst b) grundsätzlich soweit irgend möglich auf globale Variablen verzichtest c) Solche Probleme soweit sinnvoll funktional löst d) Testfälle implementierst und systematisches Debugging betreibst


   Profil
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2495
  Beitrag No.2, vom Themenstarter, eingetragen 2021-06-12

\quoteon(2021-06-12 12:34 - DerEinfaeltige in Beitrag No. 1) Solche Fehler vermeidest du, wenn du a) konkret keine Namen wie "x" mehrfach vergibst \quoteoff Danke, Einfältiger, das war's... ich muss es mir merken!


   Profil
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2592
  Beitrag No.3, eingetragen 2021-06-12

\quoteon(2021-06-12 13:14 - Bekell in Beitrag No. 2) ich muss es mir merken! \quoteoff Das wäre nicht schlecht, denn dieses Problem begleitet dich ja schon eine Weile: \quoteon(2021-06-03 17:26 - zippy in Beitrag No. 1) Du setzt x in Zeile 25 auf eine Liste, aber schon in der nächsten Zeile überschreibst du diese Variable wieder. \quoteoff


   Profil
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 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]