如何将 Pandas qcut 或类似函数应用于二维数组

时间:2021-06-17 23:21:59

标签: python pandas numpy

我正在尝试将二维数组的列离散化为大小相等的存储桶。 一个简单的二维数组示例,其中包含 NaN:

import numpy as np
import pandas as pd
np.random.seed(0)
sarray = np.random.rand(500,500)
sarray[sarray>0.9] = np.nan

我尝试使用 Pandas qcut 函数:

pd.qcut(sarray, q=10, labels=False, duplicates='drop')

但它只支持一维数组

ValueError: Input array must be 1 dimensional

我可以通过列表推导得到结果:

[pd.qcut(sarray[:,col], q=10, labels=False, duplicates='drop') for col in range(sarray.shape[1])]

但是这种方法并没有对计算进行矢量化。 Numpy 有没有办法向量化这个离散化问题(即在单个二维数组上执行计算,而不是在多个一维数组上执行计算)?

0 个答案:

没有答案