Проблема в numpy типе данных? - PullRequest
0 голосов
/ 15 марта 2020
import numpy as np

c=np.dtype([('name','S20'), ('id','f4'), ('Marks','i1')])

d=np.array([('Ganesh',100.2,75) ], dtype = c)

print(d)

Но вывод, который я получаю:

[(b'Ganesh', 100.2, 75)]

, и требуемый вывод:

[('Ganesh', 100.2, 75)]

Если я использую несколько данных в d, то вывод получен желаемый.

1 Ответ

2 голосов
/ 15 марта 2020
In [114]: c=np.dtype([('name','S20'), ('id','f4'), ('Marks','i1')])                                                  
In [115]: d=np.array([('Ganesh',100.2,75) ], dtype = c)                                                              
In [116]: d                                                                                                          
Out[116]: 
array([(b'Ganesh', 100.2, 75)],
      dtype=[('name', 'S20'), ('id', '<f4'), ('Marks', 'i1')])

В PY3 тип строки по умолчанию - Юникод. `b'foo 'является байтовой строкой Используйте «U» вместо «S», если вы хотите использовать значение по умолчанию:

In [117]: c=np.dtype([('name','U20'), ('id','f4'), ('Marks','i1')])                                                  
In [118]: d=np.array([('Ganesh',100.2,75) ], dtype = c)                                                              
In [119]: d                                                                                                          
Out[119]: 
array([('Ganesh', 100.2, 75)],
      dtype=[('name', '<U20'), ('id', '<f4'), ('Marks', 'i1')])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...