Python字典是否保留数组范围?

2024-06-10 05:29:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着做一个能装上阵阵狙击手的口诀 就像[127:130, 122:124]但是dict = {1:[127:130, 122:124], 2:[127:129, 122:123]}不起作用。你知道吗

有办法吗?它不需要是dicts,但是我希望这些区域中有一部分可以调用。你知道吗

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

如果括号之间的整个部分都能放在一个字典里就好了


Tags: fft区域字典dict括号dicts狙击手办法
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]

切片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])

相关问题 更多 >