Typeerror: Bad Operand Type for Unary -: 'List' Python

I Keep getting this error, It's so simple and error is about (-x) in function but I don't know how I can fix it. Please help me.

This is my code:

import numpy as np
x = list(np.arange(0, 1, 0.1))
print (x)
def f(x):
    f = np.exp(-x)
    return f

y =f(x)

print (y)
4

2 Answers

Broadcasting isn't supported for vanilla Python lists. You should use list() after the operation involving broadcasting, like so:

import numpy as np
x = np.arange(0, 1, 0.1)
print(x)
def f(x):
    f = np.exp(-x)
    return f

y = list(f(x))
print(y)
1

First of all, please use different names

import numpy as np
x = list(np.arange(0, 1, 0.1))
print (x)
def func(param):
    retval = np.exp(-param)
    return retval

y = func(x)

print (y)

for start.

Then, you make a list from the np.arange, python lists don't support the unary operation - (minus) as you are using in the function (i.e. f = np.exp(-x))

numpy arrays on the other hand do support it. what you can do is not convert it to python list, or only convert it to a python list later in the process (after using the minus)

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Marcus Vance

Marcus Vance

Cybersecurity & Digital Privacy Researcher

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.

Share this article
Twitter Facebook Pinterest