5

我正在处理从 python 字典的值到 numpy 数组的映射,如下所示:

import numpy as np
my_array = np.array([0, 1, 2, 3, 4, 5, 6])
my_dict = {'group_a':my_array[0:3], 'group_b':my_array[3:]}

这提供了通过 dict 引用的值来反映在整个数组中所做的任何更改。我需要字典中组的大小是灵活的。但是,当一个组只有一个元素时,例如:

my_dict2 = {'group_a':my_array[0], 'group_b':my_array[1:]}

...然后 numpy 似乎返回元素值而不是指针。dict 中的值不再反映数组中的任何更改。有没有办法澄清我想要指针,即使是单个元素引用?

4

1 回答 1

8

据我所知,没有办法做到这一点,可能最简单的解决方法是让字典中的值成为一个单元素列表,如下所示:

my_dict2 = {'group_a':my_array[0:1], 'group_b':my_array[1:]}

IE,

In [2]: my_array = np.array([0, 1, 2, 3, 4, 5, 6])

In [3]: my_dict2 = {'group_a': my_array[0:1], 'group_b': my_array[1:]}

In [4]: my_dict2
Out[4]: {'group_a': array([0]), 'group_b': array([1, 2, 3, 4, 5, 6])}

In [5]: my_array[0] = 200

In [6]: my_dict2
Out[6]: {'group_a': array([200]), 'group_b': array([1, 2, 3, 4, 5, 6])}
于 2013-09-17T20:59:10.620 回答