Вот три варианта (при условии, что вы действительно имеете в виду 2D-массив).
inp = ['11,2019','12,2019']
1. Самый короткий, но в конечном итоге перестанет работать, как только класс
matrix
будет удален из
numpy
:
np.array(np.matrix(';'.join(inp)))
# array([[ 11, 2019],
# [ 12, 2019]])
2.Вот что вы должны использовать:
np.array([l.split(',') for l in inp], int)
# array([[ 11, 2019],
# [ 12, 2019]])
Мы используем понимание списка, чтобы разделить каждую строку через запятую.Второй аргумент np.array
это dtype
;мы используем это, чтобы сказать numpy, что входные элементы (которые являются строками) должны интерпретироваться как целые числа.
3. Это позволяет python анализировать строки в кортежи целых чисел.Работает, но немного перегружен.
import ast
np.array([ast.literal_eval(l) for l in inp])
# array([[ 11, 2019],
# [ 12, 2019]])
PS: Если вы действительно хотите набрать то, что вы ввели, вы должны добавить [..., None]
к приведенному выше, например:
np.array([l.split(',') for l in inp], int)[..., None]
# array([[[ 11],
# [2019]],
#
# [[ 12],
# [2019]]])