布尔数组、数组排序、数组去重

数据

离散数据:名目数据(名字、目录,能直接描述的事物)或者是顺序数据(称为带顺序的名目数据)

连续数据:区间数据(等距数据)和等比数据(连续性的数据),区间数据没有自然0点,其0值点是人为规定的,等比数据有自然0点.
温度和时间为区间数据
大部分都是等比数据如身高、年龄等等

布尔数组(可用来判断空值、满足条件个数、以及是否满足条件等)

bool_1.sum() 统计true值的个数 list(bool_1).count(True)也可以实现计数
bool_1.sum(1) 按列计算(不同其他)
bool_1.sum(0) 按行计算
bool_1.any() 判断是否有True
bool_1.all() 判断是否全是True
对于大混合数据(包含各种类型)需要使用dtype去声明为object类型否则会产生各种问题 如spirit_ar=np.array(daten1,dtype=object

对数据进行操作的时候尽量使用新变量和copy进行原数据的保护

数据的删除

np.delete(a1,j,0) a1表示待操作的数组,j表示待操作的行索引或者列索引,0代表对行操作,1代表对列操作

多行\多列删除

np.delete(a1,[2,3,4,5,6],0) 当使用遍历数据并且进行删除的时候需要倒着删否则因为索引变化导致删除数据出现错误
np.where(条件) 只有条件返回的为一个元组,两个数据分别存放着行和列数组
np.arange(1,9) = np.array(range(1,9))

数组的排序

a1.sort() 默认按行排序===但是会破环数据结构
a1.sort(0) 按列进行排序(小到大,里面有参数可以改为从大到小排)
a1.sort(1) 按行进行排序
np.sort(a1,轴参数) ==================与sort属性方法相比,函数是一次性排序而属性方法是永久排序,破环了原来的数据

数组的拼接

np.vstack((a1,a2)) 垂直拼接,将数组按行拼接(列数必须相同)
np.hstack((a1,a2)) 水平拼接,像数据按列拼接(行数必须相等)
np.column_stack(a1,a2) 水平拼接,数据按列拼接
注意:对于大数据都是分块读取的然后拼接而不是一下子读取全部

数组的去重

删除重复行:np.unique(a1,axis=0) 0表示删除重复行,并对第一列进行排序
删除重复列:np.unique(a1,axis=1) 1表示删除重复列,并对第一行进行排序
(注意对于数据的删除操作对应的0,1不是常见的逐行按列和逐列按行)

np.in1d() 一维数组的批量查询
np.in1d(a1,[查询目标1,查询目标2…..])======返回的为布尔数组,找到的对应为True,没找到的为False,对每一个数据比较,满足任意一个即为True
a1查询对象可以为列表,可以为数组(注意数据类型)也可以通过布尔值使用布尔值索引去找对应的数据

数组当作集合操作

np.intersect1d(a1,a2) 两个集合的交集 返回的为公共的数据
np.union1d(a1,a2) 集合的并集 【常用于一维数组】
np.setdiff1d(a1,a2) a1对a2的差集
np.setxor1d(a1,a2) 交集的补集(并集去掉交集)