преобразовать строковое значение в массив NumPy - PullRequest
1 голос
/ 22 апреля 2019

Я хочу передать данные csv в качестве аргумента в почтальон.

Что может быть похоже на

s = 2,3,4,5
s= "2,3,4,5"

Эти данные CSV поступают из некоторого файла CSV.Я могу напрямую вставить его как

localhost?data="2,3,4,5"

Как правильно проанализировать и преобразовать его в массив numpy?

Я пробовал это

s = "2,3,4,5"
print(np.array(list(s)))

Что дает

['1' ',' '2' ',' '3' ',' '4']

что не так.

d =np.fromstring(s[1:-1],sep=' ').astype(int)

Дает array([], dtype=int64), чего я не понимаю.

Какой правильный путь?

Ответы [ 3 ]

4 голосов
/ 22 апреля 2019

Вы можете попробовать np.fromstring(), как в

import numpy as np
s = "2,3,4,5"
np.fromstring(s, dtype=int, sep=',')

чтобы получить вывод как

array([2, 3, 4, 5])
2 голосов
/ 22 апреля 2019

Вы можете разделить запятую и затем использовать np.array

Пример:

import numpy as np

s = "2,3,4,5"
print(np.array(s.strip('"').split(",")).astype(int))

Выход:

[2 3 4 5]
1 голос
/ 22 апреля 2019

Вот еще один способ:

>>> import numpy as np
>>> s='2,3,4,5'
>>> np.array([int(i) for i in s.split(',')])
array([2, 3, 4, 5])
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...