首页 > 解决方案 > 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]

标签: pythonnumpy

解决方案


NumPy 数组重载比较运算符以执行每个元素的操作,而不是每个容器。

换句话说,

check=a<0.8

将创建一个check长度相同的新 NumPy 数组,如下所示a

check[i] = a[i] < 0.8

推荐阅读