假设您在Python中有N-M范围内的随机元素数组,例如
import numpy as np
np.random.seed(0)
a_2d_array = np.random.uniform(0,100,(2,2))
并说您有一些从X到Y结束的间隔范围。
intervals
= [0-10],[10-20],[20-30] ... [90-100]
是否有一种有效的方法将a_2d_array
的元素替换为元素所在的intervals
的索引。
例如:
print(a)
[[54.88135039 71.51893664]
[60.27633761 54.4883183 ]]
将替换为:
[[4 7]
[6 5]]
为清楚起见,a
的元素0属于intervals
等的第4个元素。
也许有一种使用pandas的方法,因为我知道它具有间隔功能,但是我看不到一种快速的方法。
请注意,此方法适用于任何间隔集(即,间隔可以以任何实数开头,无论是正数还是负数和非零)。
在此先感谢您的帮助!
编辑:
我尝试过的示例解决方案:
一个人可以简单地使用:
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.]])
因此,在此示例中,只需知道step_size
。