Создание словаря из массива numpy
у меня есть массив NumPy и я хочу создать словарь из массива.
более конкретно я хочу словарь, который имеет ключи, соответствующие строке, поэтому ключ 1 должен быть суммой строки 1.
s1-мой массив, и я знаю, как получить сумму строки, но делать numpy.sum(s1[i])
, где i-строка.
Я думал создать цикл, где я могу вычислить сумму строки, а затем добавить его в словарь, но я новичок в программировании, поэтому я не уверен как это сделать, или, если это возможно.
есть ли у кого-нибудь предложения?
редактировать
Я создал Ключевые значения с помощью функции range. Затем застегнул молнию на ключах и массиве.
mydict = dict(zip(keys, s1))
1 ответов
Я бы сделал что-то похожее по духу на свой dict(zip(keys, s1))
, с двумя незначительными изменениями.
во-первых, мы можем использовать enumerate
, а во-вторых, мы можем назвать sum
метод ndarray
s. Пример:
>>> arr = np.arange(9).reshape(3,3)
>>> arr
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> arr.sum(axis=1)
array([ 3, 12, 21])
>>> dict(enumerate(arr.sum(axis=1)))
{0: 3, 1: 12, 2: 21}