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
Flux140looks more like a list of string than a numpy array. Elements are strings and, for proper python syntax, they are missing the coma between elements.*would've been list repetition. That looks like theprinted representation of a NumPy object array.typeargument to determine if its truly a numpy array