Python字典是否包含数组范围?

时间:2014-06-09 09:51:27

标签: python dictionary

我尝试制作一个可以容纳一些数组片段的字典 比如[127:130, 122:124],但dict = {1:[127:130, 122:124], 2:[127:129, 122:123]}不起作用。

有办法做到这一点吗?它不需要是dicts,但我想要一堆这些区域可以调用。

所以我有256x256阵列,我想在其中选择一些小区域进行一些计算: fft[127:130, 122:124]

如果括号中的整个部分可以在dict中,那就太棒了

2 个答案:

答案 0 :(得分:2)

您可以使用slice功能。它返回一个可以存储在字典中的切片对象。例如:

slice_1 = slice(127, 130)
slice_2 = slice(122, 124)

slice_a = slice(127, 129)
slice_b = slice(122, 123)

d = {1:[slice_1, slice_2],
     2:[slice_a, slice_b]
     }

x = fft[d[1]]  # Same as fft[127:130, 122:124]
y = fft[d[2]]  # Same as fft[127:129, 122:123]

答案 1 :(得分:0)

切片 numpy 数组返回a view, and not a copy,也许这就是你要找的?

import numpy

a = numpy.arange(10)

b = a[3:6] # array([3, 4, 5])
a[4] = 0
#b is now array([ 3, 0,  5])

b[1] = 1

#a is now array([0, 1, 2, 3, 1, 5, 6, 7, 8, 9])