gpt4 book ai didi

python - 如何翻译/移动一个numpy数组?

转载 作者:行者123 更新时间:2023-12-04 16:30:42 28 4
gpt4 key购买 nike

我不确定要搜索什么关键字,因此如果已经询问过,请链接响应并关闭此线程。

我正在尝试将 numpy 数组的非零条目按固定方向移动,例如,假设我有一个二维数组:

0 1 2 0
0 3 0 0
0 0 0 0
0 0 0 0

将其移动 (1,1) 将产生以下数组:

0 0 0 0
0 0 1 2
0 0 3 0
0 0 0 0

假设如果非零条目超出范围,它们就会被丢弃。我该怎么做?

编辑:显然有些重复? Shift elements in a numpy array我真的不明白为什么它们根本是同一个问题,因为那个人谈论的是使事物不受约束地循环,因此它更像是一种“滚动” Action 而不是转移。我也喜欢这里的解决方案,它非常简单易读。

再次编辑:修复了一些格式

最佳答案

使用 numpy 中的 roll 方法。

>>> import numpy as np
>>> m
array([[0, 1, 2, 0],
[0, 3, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
>>> m = np.roll(m, 1, axis=0) # shift 1 place in horizontal axis
>>> m = np.roll(m, 1, axis=1) # shift 1 place in vertical axis
>>> m
array([[0, 0, 0, 0],
[0, 0, 1, 2],
[0, 0, 3, 0],
[0, 0, 0, 0]])

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.roll.html

关于python - 如何翻译/移动一个numpy数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44874512/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com