【发布时间】:2020-12-09 17:12:09
【问题描述】:
我目前正在尝试用normal = np.round(np.random.normal(loc=0.0,scale=1000,size=(size)),1).astype(int) 和seed = np.random.seed(0) 随机数据生成一个numpy 数组,然后以等距的方式对它们进行分类,例如:
d=10
data = np.ndarray.flatten(np.asarray(normal,dtype=int))
interval = np.divide(np.max(data)-np.min(data),d)
intervals = np.arange(np.min(data),np.max(data),interval,dtype=int)
for x in range(len(data)):
for z in range(d-1):
if data[x] >= intervals[z] and data[x] < intervals[z+1]:
data[x] = z
elif data[x] > intervals[-1]:
data[x] = d-1
理想情况下,当我这样做时,我希望我的数据数组中的值被 0-9 的值替换,但是每当我运行它时,我最终都会得到 4-8 的值。任何人都知道我可能做错了什么或如何改进此方法?
Interval 是要使用的增量值,Intervals 是各个间隔的实际边界值。
【问题讨论】:
标签: python arrays numpy for-loop