Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Python Shape-fehler
Druckversion
Druckversion
Antworten
Antworten
Autor
Schule Python Shape-fehler
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2421
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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....
Python
  1. import matplotlib.pyplot as plt
  2. from openpyxl import Workbook
  3. from sympy.ntheory import isprime
  4. import numpy as np
  5. from sympy import sieve
  6. from sympy import primepi
  7. from math import sqrt
  8. from collections import Counter
  9. import collections
  10.  
  11.  
  12. n=8 # Länge des zu untersuchenden Abschnittes, im PLT Block ändern)
  13. Ngrenze=210#2*(n*n)
  14. start=1 # erste Untersuchung ist die Normlänge = 2 * n und beginnt bei 1
  15. nr=0
  16. pf=0 # Primfactoren der Zahl
  17. supf=0 # Sammler der PF des Gleiters
  18. supt=0
  19. Dif=0
  20. stell=0 # Stellung des Schlittens
  21. pz=0
  22. kosu=0 # Kontrollsumme
  23. y1=[]
  24. y2=[]
  25. y3=[]
  26. y4=[]
  27. y5=[] # für Kontrollsumme
  28. ptunterwusammler=[] # Hier sammelt er die PT kleiner Länge
  29. myDoppelteauswerter={}
  30. import Def_primfactoren
  31. import Def_primteiler
  32.  
  33.  
  34. x=np.arange(start,Ngrenze,2)
  35. for i in range(start,Ngrenze,2): # Grundgerüst
  36. print()
  37. stell+=1
  38. for j in range(i,i+(2*n),2): # Gleiter
  39. nr+=1
  40. pf=Def_primfactoren.def_primfactoren(j)
  41. pt=Def_primteiler.def_primteiler(j)
  42. print("j",j,"pf",pf,"pt",pt)
  43. for x in pt:
  44. if x < n:
  45. ptunterwusammler.append(x)
  46. #print("uwu",ptunterwusammler)
  47. if len(pf)>=2:
  48. supf+=1
  49. if len(ptunterwusammler)>=2: # Hier kuckt er, omb mehr als 2, die mehr als 2 pt kleiner Wurzel haben
  50. supt+=1
  51.  
  52. if isprime(j):
  53. pz+=1
  54. if len(pt)-len(pf)!=0:
  55. Dif+=1
  56. ptunterwusammler=[]
  57. #y3.append(pz)
  58. #print(nr," i:",i," j:",j,"",len(pf),"pf:",pf,)# Vollständiges Listing (verlangsamt sehr)
  59. print("stell",stell,"Beg:",i,"End:",j,"Doppelte:.",supt,"pf",pf,"pt",pt)
  60. #wie oft welcher wert durchschnitt
  61. kosu=supf+pz
  62. y2.append(supf)
  63. y3.append(pz)
  64. y1.append(supt+8)# um deutlich zu machen, die 8 addiert
  65. y4.append(Dif)
  66. y5.append(kosu)
  67. if supf in myDoppelteauswerter:
  68. myDoppelteauswerter[supf]+=1
  69. else:
  70. myDoppelteauswerter[supf]=1
  71. supf=0
  72. pz=0
  73. pt1=0
  74. supt=0
  75. Dif=0
  76. result=collections.OrderedDict(sorted(myDoppelteauswerter.items()))
  77. print("Auswertung:",result)
  78.  
  79. plt.figure(figsize=(16,8))
  80. plt.xlabel('x - Stellung des Schlittens (Intervalls Länge = 8)')
  81. plt.ylabel('Anzahl')
  82.  
  83. plt.axis([1, Ngrenze, -1, 30])
  84. plt.grid(True)
  85. #plt.plot(x, y2, label=['Stellung', 'Anzahl Doppelte'])
  86. #plt.legend()
  87. plt.plot(x,y1,color="black",label=['Anzahl der Doppelten (Überlappungen)'])
  88. plt.plot(x,y2,color="green",label=['Anzahl der belegte Spalten (zZ)'])
  89. plt.plot(x,y3,color="blue",label=['Anzahl der freie Spalten (PZ)'])
  90. #plt.plot(x,y4,color="red",label=['Differenz: PF-PT'])
  91. plt.plot(x,y5,color="red",label=['Kontrollsumme: PF+PT'])
  92. plt.legend()
  93. plt.show()


Und wie kann ich eigentlich bei Spider den Fehlercode lesen lernen, der so aussieht:
Python
  1. File "//opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
  2. execfile(filename, namespace)
  3.  
  4. File "//opt/anaconda3/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
  5. exec(compile(f.read(), filename, 'exec'), namespace)
  6.  
  7. File "//Desktop/ProjLeg/PythonProgr./LanggleiterKON.py", line 95, in <module>
  8. plt.plot(x,y1,color="black",label=['Anzahl der Doppelten (Überlappungen)'])
  9.  
  10. File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2795, in plot
  11. is not None else {}), **kwargs)
  12.  
  13. File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 1666, in plot
  14. lines = [*self._get_lines(*args, data=data, **kwargs)]
  15.  
  16. File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 225, in __call__
  17. yield from self._plot_args(this, kwargs)
  18.  
  19. File "//opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 391, in _plot_args
  20. x, y = self._xy_from_xy(x, y)

da werden Zeilennummern genannt, die ich nicht sehe in meinem Spider-Fenster.... wo gibt es dafür eine Anleitung....




-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 2909
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  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


-----------------
Why waste time learning when ignorance is instantaneous?
- Bill Watterson -



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2421
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2021-06-12


2021-06-12 12:34 - DerEinfaeltige in Beitrag No. 1 schreibt:
Solche Fehler vermeidest du, wenn du
a) konkret keine Namen wie "x" mehrfach vergibst

Danke, Einfältiger, das war's... ich muss es mir merken!


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
zippy
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 24.10.2018
Mitteilungen: 2427
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2021-06-12


2021-06-12 13:14 - Bekell in Beitrag No. 2 schreibt:
ich muss es mir merken!

Das wäre nicht schlecht, denn dieses Problem begleitet dich ja schon eine Weile:

2021-06-03 17:26 - zippy in Beitrag No. 1 schreibt:
Du setzt x in Zeile 25 auf eine Liste, aber schon in der nächsten Zeile überschreibst du diese Variable wieder.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell hat die Antworten auf ihre/seine Frage gesehen.
Bekell wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


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]