小编Jay*_*man的帖子

如何更改 numpy 数组的一部分的值?

我的问题比实际上更具体一些。考虑以下数组:

from numpy import zeros, ones

array1 = ones((3, 3), bool)
array1[0][0] = 0
array1[0][2] = 0
array1[2][0] = 0
array1[2][2] = 0

array2 = zeros((12, 12), bool)
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一种方法,可以引用与 array1 相同比例的 array2 的二维部分,以便我可以将 array1 中的正值添加到其中。我知道有一些方法可以使用循环来完成此操作,但我更喜欢使用单个语句,例如 array2[(获取 array2 的 3x3 部分的某种方式)] |= array1

python arrays numpy slice

5
推荐指数
1
解决办法
7527
查看次数

当我不尝试迭代时,'int'对象不可迭代

下面的代码试图创建一个地图,显示从该地图上的每个方块到指定位置所需的最小移动次数.作为一个整体的功能在很大程度上与问题无关,但我认为我应该在上下文中提出我的问题.我也从集合中导入了deque.奇怪的部分来自第7行.我得到TypeError:'int'对象不可迭代.但是声明"distance_from_loc,f_loc = squares_to_check.popleft()"不应该试图以最好的知识迭代任何东西.任何帮助将不胜感激.

    def complex_distance(self, loc):
        row, col = loc
        squares_to_check = deque((0, loc))
        self.complex_distance_map = zeros((self.height, self.width), int) + 999
        self.complex_distance_map[row][col] = 0
        while squares_to_check:
            distance_from_loc, f_loc = squares_to_check.popleft()
            distance_from_loc += 1
            for d in AIM:
                n_loc = self.destination(f_loc, d)
                n_row, n_col = n_loc
                if distance_from_loc < self.complex_distance_map[n_row][n_col] and not self.map[n_row][n_col] == -4:
                    squares_to_check.append((distance_from_loc, n_loc))
                    self.complex_distance_map[n_row][n_col] = distance_from_loc
Run Code Online (Sandbox Code Playgroud)

python tuples typeerror deque

1
推荐指数
1
解决办法
1587
查看次数

标签 统计

python ×2

arrays ×1

deque ×1

numpy ×1

slice ×1

tuples ×1

typeerror ×1