python - numpy 比较的工作原理
问题描述
我是这个领域的新手,这个脚本用于将 80% 的数据随机放入训练列表,其余 20% 放入测试列表。这个脚本有效,但我有几个关于它为什么有效的问题。如果 len(data) 为 1000,则 randn(1000) 将生成 1000 个正态分布的随机数。我不明白的是:1)我测试自己,例如 [1,2,3,4,5,6,7,8,9,10]<5 我得到一个错误,因为左边的运算符是一个列表。但是为什么 check=a<0.8 合法,a 应该是 1000 个元素的列表?
import pandas as pd
import numpy as np
data = pd.read_csv('E:/Personal/Learning/Datasets/Book/Customer ChurnModel.txt')
len(data)
a=np.random.randn(len(data))
check=a<0.8
training=data[check]
testing=data[~check]
解决方案
NumPy 数组重载比较运算符以执行每个元素的操作,而不是每个容器。
换句话说,
check=a<0.8
将创建一个check
长度相同的新 NumPy 数组,如下所示a
:
check[i] = a[i] < 0.8
推荐阅读
- matlab - 如何标记此预测示例 Matlab
- codeigniter - 无法上传大小为 5MB 的 excel 文件并出现以下错误
- drupal-8 - 节点预览页面的 Drupal 8 主题建议
- ruby-on-rails - 如何将递归/嵌套 OpenStruct 对象转换为哈希
- java - Intellij 无法从项目模块构建 jar
- mysql - 查询字符串值不起作用
- dictionary - 遍历 SaltStack 中的一对多键值 jinja 字典
- java - Eclipse RCP 进度监视器不再显示
- python - 只有单个输入时如何处理 MinMaxScaler?
- aws-sdk - Amazon Connect 自动拨出电话