首页 > 解决方案 > 不一致的向量化 Numpy 和 Pandas

问题描述

我想在 pd.DataFrame 上对一些简单的数学进行矢量化。特别是,我想将数据框的每一行除以该行的总和。我的问题是,每当我使用数据帧上的矢量化操作(不是 df.apply 或转换为实际的 numpy 数组)计算它时,计算就会关闭,并且我在输出数据帧中获得了额外的列。Numpy Vectorization 与 Pandas 不同吗?这让我很惊讶...

# random data
df = pd.DataFrame(np.random.randint(0, 100, size=(100, 5)))

# sum of each row
rowSum = np.sum(df, axis=1)

# PANDAS vectorization
divided = df / rowSum 


mdarray = df.values # converts to 2d array
rowSumArray = rowSum.values.reshape(-1, 1) # converts to 1d array

# NUMPY vectorization
dividedArray = mdarray / rowSumArray

示例代码:

标签: pythonpandasnumpyvectorization

解决方案


推荐阅读