I have a numpy array and I'm trying to multiply it by a scalar but it keeps throwing an error:
TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'int'
My code is:
Flux140 = ['0.958900', 'null', '0.534400']
n = Flux140*3
I have a numpy array and I'm trying to multiply it by a scalar but it keeps throwing an error:
TypeError: unsupported operand type(s) for *: 'numpy.ndarray' and 'int'
My code is:
Flux140 = ['0.958900', 'null', '0.534400']
n = Flux140*3
The problem is that your array's dtype
is a string, and numpy doesn't know how you want to multiply a string by an integer. If it were a list, you'd be repeating the list three times, but an array instead gives you an error.
Try converting your array's dtype
from string to float using the astype
method. In your case, you'll have trouble with your 'null'
values, so you must first convert 'null'
to something else:
Flux140[Flux140 == 'null'] = '-1'
Then you can make the type float:
Flux140 = Flux140.astype(float)
If you want your 'null'
to be something else, you can change that first:
Flux140[Flux140 == -1] = np.nan
Now you can multiply:
tripled = Flux140 * 3
That's an array of strings. You want an array of numbers. Parse the input with float
or something before making the array. (What to do about those 'null'
s depends on your application.)