Как установить dtype в np.asarray? - PullRequest
0 голосов
/ 06 января 2020
list_t = [['微信', '61860', '63409', '-1549'],
 ['支付宝', '121990', '112995', '9239'],
 ['腾讯视频', '116221', '106665', '7955'],
 ['讯飞语音引擎', '350777', '325049', '51728'],
 ['百度', '140252', '108637', '32015'],
 ['抖音短视频', '118262', '150556', '31706'],
 ['QQ', '118878', '104456', '14452'],
 ['高德地图', '95748', '82388', '12685'],
 ['手机淘宝', '148342', '135533', '12519'],
 ['拼多多', '335259', '224793', '111166']]
dt = np.dtype([("a","U7"),("b","i4"),("c","i4"),("d","i4")])
array_t = np.asarray(list_t, dtype=dt)

ValueError: недопустимый литерал для int () с основанием 10: '微 信'

1 Ответ

0 голосов
/ 06 января 2020

Для создания структурированного массива значения, связанные со структурированным элементом, должны храниться в виде кортежей, а не списков:

In [62]: array_t = np.asarray([tuple(row) for row in list_t], dtype=dt)                                            

In [63]: array_t                                                                                                   
Out[63]: 
array([('微信',  61860,  63409,  -1549), ('支付宝', 121990, 112995,   9239),
       ('腾讯视频', 116221, 106665,   7955),
       ('讯飞语音引擎', 350777, 325049,  51728), ('百度', 140252, 108637,  32015),
       ('抖音短视频', 118262, 150556,  31706), ('QQ', 118878, 104456,  14452),
       ('高德地图',  95748,  82388,  12685), ('手机淘宝', 148342, 135533,  12519),
       ('拼多多', 335259, 224793, 111166)],
      dtype=[('a', '<U7'), ('b', '<i4'), ('c', '<i4'), ('d', '<i4')])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...