Python 用区间索引替换二维数组元素
假设Python中有一个范围为N-M的随机元素数组,例如Python 用区间索引替换二维数组元素,python,arrays,indexing,intervals,Python,Arrays,Indexing,Intervals,假设Python中有一个范围为N-M的随机元素数组,例如 import numpy as np np.random.seed(0) a_2d_array = np.random.uniform(0,100,(2,2)) 假设你有一些区间范围,从X开始,到Y结束,例如 间隔=[0-10]、[10-20]、[20-30]。。。[90-100] 是否有一种有效的方法将a_2d_数组的元素替换为元素所在的间隔的索引 e、 g: 将替换为: [[4 7] [6 5]] 其中,为清楚起见,a的元素0
import numpy as np
np.random.seed(0)
a_2d_array = np.random.uniform(0,100,(2,2))
假设你有一些区间范围,从X开始,到Y结束,例如
间隔
=[0-10]、[10-20]、[20-30]。。。[90-100]
是否有一种有效的方法将a_2d_数组
的元素替换为元素所在的间隔的索引
e、 g:
将替换为:
[[4 7]
[6 5]]
其中,为清楚起见,a
的元素0属于间隔的第4个元素
等
也许有一种方法可以做到这一点,因为我知道它有间隔功能,但我看不到一个快速的方法
请注意,这适用于任何一组间隔(即间隔可以从任何实数开始,无论是正数、负数还是非零)
在此,非常感谢您的帮助
编辑:
我尝试过的示例解决方案:
你可以简单地使用:
a = np.random.uniform(-100,100,(2,2))
print(a)
array([[-20.8722065 , 30.65764508],
[ 12.03883227, -84.36615283]])
step_size = 10
a//10
array([[-3., 3.],
[ 1., -9.]])
因此,在本例中,只需知道步长大小
。对于“是否有一种有效的方法可以将二维数组的元素
替换为元素所在的间隔的索引”的简短回答是肯定的。你能提供一些你已经尝试过的和不起作用的例子吗?我已经在我已经尝试过的例子中添加了。我不知道它是否是最有效的,但它与显式的间隔列表是解耦的,需要知道最小间隔才能解释上面示例中所示的负指数。
a = np.random.uniform(-100,100,(2,2))
print(a)
array([[-20.8722065 , 30.65764508],
[ 12.03883227, -84.36615283]])
step_size = 10
a//10
array([[-3., 3.],
[ 1., -9.]])