用间隔索引替换2D数组元素

时间:2019-11-12 14:50:41

标签: 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结束的间隔范围。

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

0 个答案:

没有答案