python - 为什么当索引数组为布尔值时,数据框返回一个数值数组?
问题描述
我正在学习如何通过数据框训练和测试样本。我查看了一个解决方案帖子,但我无法理解代码语法的一些细节。
In [11]: df = pd.DataFrame(np.random.randn(100, 2))
In [12]: msk = np.random.rand(len(df)) < 0.8
In [13]: train = df[msk]
In [14]: test = df[~msk]
In [15]: len(test)
Out[15]: 21
In [16]: len(train)
Out[16]: 79
由于 msk 将返回一个布尔数组。msk 是 df 和 df[msk] 的索引如何返回实际的数值数据?据我了解, df 的索引应该是一个字符串或一个字符串数组。
解决方案
在 NumPy 和 Pandas 中,与您要索引的数组长度相同的布尔数组被视为“掩码”,并选择掩码为 True 的值。
推荐阅读
- c - 计算和打印矩阵的对角线之和
- javascript - 如何在 Angular 中使用 addEventListener 和 postMessage?
- php - 如何将日期、时间和值从单选按钮放入数据库
- c# - 逐个像素地动态绘制和显示,有一些延迟
- npm - 如何从 Nexus oss 代理获取依赖于 github 项目的 npm 包
- django - Django 测试 - 发送包含整数的数组数组
- android - 在 android 中使用改造登录
- json - 我如何在 nunjuncks 中乘以数据?
- swift - 为什么不能在swift中将可变参数标记为inout?
- vue.js - Vue Js 2 / Vue-CLI 3 / 托管时显示空白页