Я пытаюсь назначить числа с плавающей запятой из кортежа в массив numpy - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь присвоить массиву числа с плавающей запятой, хранящиеся в кортеже, но в результате я получил только целые числа.

print(type(coordinates))
<class 'tuple'>
        
print(coordinates)
(67.70841587330506, 43.49477297494752)
       
print(type(a_punkty))
<class 'numpy.ndarray'>

print(a_punkty.shape)
(10, 2)
a_punkty[0] = coordinate
print(a_punkty[0])
[67 43]

но я хотел бы иметь [67.71, 43.49]

Как для этого, спасибо!

1 Ответ

1 голос
/ 07 августа 2020

Похоже, ваш массив numpy не относится к типу float. Это означает, что в этом примере ваш массив может хранить только целые числа.

import numpy as np

# because of argument dtype, everything this array stores is casted to uint
a = np.array([(1, 2), (1.1, 2.2), (-1, -5.1)], dtype=np.uint8)
print(a)
# array([[1, 2], [1, 2], [255, 251]], dtype=uint8)

Чтобы решить эту проблему, измените тип данных массива на float (помните, что каждое сохраненное значение также приводится к float).

b = a.astype(np.float32)
b[0] = (9.99, -5.2)
print(b)
# array([[9.99, -5.2], [1.0, 2.0], [255.0, 251.0]], dtype=float32)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...