Home > Back-end >  How to use math function in Python
How to use math function in Python

Time:03-15

How to execute this code:

import numpy as np
import math

x = np.arange(1,9, 0.5)
k = math.cos(x)
print(x)

I got an error like this:

TypeError: only size-1 arrays can be converted to Python scalars

Thank you in advance.

CodePudding user response:

So this is happening because math.cos doesn't accept numpy arrays larger than size 1. That's why if you had a np array of size 1, your approach would still work.

A simpler way you can achieve the result is to use np.cos(x) directly:

import numpy as np

x = np.arange(1,9, 0.5)
k = np.cos(x)
print(x)
print(k)

If you have to use the math module, you can try iterating through the array and applying math.cos to each member of the array:

import numpy as np 
import math 

x = np.arange(1,9,0.5) 
for item in x:
    k = math.cos(item) 
    print(k) # or add to a new array/list

CodePudding user response:

You're looking for something like this?

import numpy as np 
import math 
x = np.arange(1,9, 0.5) 
for ang in x:
    k = math.cos(ang) 
    print(k)

CodePudding user response:

You are trying to pass ndarray (returned by arange) to a function, which expects just real number. Use np.cos instead.

  • Related