Mr. Randy Tom
Mr. Randy Tom

Reputation: 321

Dividing numpy array by numpy scalar

I'm trying to divide numpy array by numpy float64 type scalar. Following is my code.

pose_q = np.array(pose_q)
expectecd_q = np.array(expectecd_q)

pose_q = np.squeeze(pose_q)
expectecd_q = np.squeeze(expectecd_q)

q1 = expectecd_q / np.linalg.norm(expectecd_q)
q2 = pose_q / np.linalg.norm(pose_q)

d = abs(np.sum(np.multiply(q1, q2)))

However I'm getting the following error pointing towards expectecd_q / np.linalg.norm(expectecd_q)

TypeError: ufunc 'true_divide' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

Upvotes: 2

Views: 7382

Answers (1)

Valdi_Bo
Valdi_Bo

Reputation: 30971

As you didn't provide your data, I created both arrays as:

a = np.array([12.0, 15.2, 19.3])  # Dividend
b = np.array(3.0)                 # Divider (a Numpy scalar)

If you want to divide a by b run just (no surprise) a / b. The result is:

array([4.        , 5.06666667, 6.43333333])

In your case, maybe you should identify what particular values you have as operands.

I looked in the Web for your error message. I found a suggestion that the cause can be that the array in question has text values (not float). It can happen when you read the array from a database. Check dtype of this array. class 'numpy.ndarray' says only that this is a Numpy array. But what is the type of its elements?

Upvotes: 4

Related Questions