TypeError: object ‘numpy.float64’ kan niet worden aangeroepen

Dus wat ik probeer te doen is bepaalde getallen van bepaalde posities in een array van een gegeven > bereik en zet ze in een vergelijking

yy = arange(4)
xx = arange(5)
Area = ((xx[2] - xx[1])(yy[2] + yy[1])) / 2

Ik probeer het uit te voeren en ik krijg dit..

----> ((xx[2] - xx[1])(yy[2] + yy[1])) / 2
TypeError: 'numpy.int64' object is not callable

Ik krijg een foutmelding.. hoe kan ik bepaalde getallen in een array gebruiken en in een vergelijking plaatsen?


Antwoord 1, autoriteit 100%

Python volgt niet dezelfde regels als geschreven wiskunde. Je moet vermenigvuldiging expliciet aangeven.

Slecht:

(a)(b)

(tenzij aeen functie is)

Goed:

(a) * (b)

Antwoord 2, autoriteit 50%

Deze fout treedt ook op wanneer uw functie dezelfde naam heeft als uw retourwaarde

def samename(a, b):
    samename = a*b
    return samename

Dit kan een super beginnersfout zijn, ik ben benieuwd hoe vaak dit antwoord nuttig zal zijn.


Antwoord 3, autoriteit 38%

Je mist *bij het vermenigvuldigen, probeer:

import numpy as np
yy = np.arange(4)
xx = np.arange(5)
Area = ((xx[2] - xx[1])*(yy[2] + yy[1])) / 2

Antwoord 4, autoriteit 12%

Dit kan gebeuren omdat je de naam hebt overschreven van de functie die je probeert aan te roepen.

Bijvoorbeeld:

def x():
    print("hello world")
...
x = 10.5
...
x()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in 
      2     print("hello world")
      3 x = 10.5
----> 4 x()
TypeError: 'float' object is not callable

Other episodes