当前位置:   article > 正文

数据清洗:Numpy_class 'numpy.ndarray

class 'numpy.ndarray

Numpy 的核心是 ndarray 对象,包含了多维数组以及多维数组的操作;

一、ndarray

1、构建ndarray

  1. np.array(object, dtype=None)
  2. object:转换的数据
  3. dtype:数据元素的数据类型(intfloat等)
  1. import numpy as np
  2. #全部行都能输出
  3. from IPython.core.interactiveshell import InteractiveShell
  4. InteractiveShell.ast_node_interactivity = "all"

2、数据类型

2.1、查看数据类型

2.2、基本数据类型

2.3、向上转换规则

NumPy 数组必须包含同一类型的数据。如果类型不匹配,NumPy 将会向上转换(如果可行)。

确保数据完整性:整数->小数->字符串

2.4、指定类型创建

字符型转化为数值型,将报错;

2.5、类型转换

  • 第一种方式: ndarray.astype("数据类型名")
  • 第二种方式: ndarray.astype(np.数据类型名)

 3、Numpy 的矢量化(向量化)功能

二、常用数组

1、全0数组

np.zeros(shape,dtype)/np.zeros_like(a)

2、全1数组

np.ones(shape, dtype)/np.ones_like(a)

3、全n数组

np.full(shape, full_value)/np.full_like(a, full_value))

4、单位数组

np.eye(n,m,k)

n行数,m列数,k偏移量

返回一个二维数组,其中对角线为1,零点为零的二维数组

5、空值和无群大

np.nan、np.inf 都是浮点类型;

数组中如何有一个数据是空值,那么所有的数据都只能是浮点型;

6、随机数组

6.1、随机整数数组

6.2、随机小数数组

返回在区间[0,1)范围中的随机浮点数

 

6.3、正态分布

a、标准正态分布:

b、正态分布: 

  • np.random.normal(loc,scale,size)
  • loc为均值,scale为标准差,size为数组形状
  • 如果平均值和标准差为0和1,或者不写这两个参数,就等同于np.random.randn()

7、随机种子

np.random.seed(Num)可以设置一组种子值,确保每次程序执行都可以生成同样的随机数组。

8、线性序列

8.1、np.arange()

创建一个线性序列数组,给定间隔内返回均匀间隔的值,可以设置开始位置,终止位置和步长。

8.2、np.linspace() 

创建一个线性序列数组,给定间隔内返回均匀间隔的值,设置开始位置和终止位置以及产生数量。

三、nddaray常用属性

  • 查看数组形状:a.shape
  • 查看维度:a.nidm
  • 查看数组元素个数:a.size
  • 查看元素字节大小:a.itemsize

四、数组的切片和索引

4.1、多维数组的索引

 4.2、修改某一个元素的值

ndarry的形状无法修改,个数固定了,所以长度必须对应;
列表也可以通过索引来修改数据,但是长度不用固定;

五、深拷贝&浅拷贝

1、浅拷贝

浅拷贝:指向同一块内存,修改其中任何一个数组,都修改了原内存;

1.1、直接赋值

1.2、切片情况

 1.3、使用view创建一个视图(浅复制)

2、深拷贝

深拷贝:创建新的内存,与原内存可单独修改;

方法:a.copy()

六、数组的操作

1、数组的变形

1.1、reshape 

元素个数不变,返回新数组,不会对原数组做改变;

1.2、resize

元素个数可变,在原数组基础上做改变;

1.3、ravel

返回新数组;

1.4、转置

返回新数组

2、数组的拼接

  • concatenate((a1, a2, ...), axis)
  • axis指定沿着哪个轴进行拼接,默认0轴
  • 0轴拼接保列数相同(行拼接),1轴拼接保行数相同(列拼接)

3、数组的拆分

np.split(arr,indices_or_sections,axis)

  • indices_or_sections:int或1-D数组。
  • 如果indices_or_sections是一个整数N,则数组将被分割沿着'轴'进入N个相等的数组。
  • 如果indices_or_sections是排序整数的1-D数组,则为条目指示数组被分割的“轴”的位置。
  • 如果索引超过沿“轴”的数组维度,相应地返回一个空的子数组。

 

七、广播机制

  • 规则1:如果两个数组形状中,只有其中一个维度相同,另一个维度不一致,但是其中一个数组有维度为1,则可以补齐
  • 规则2:如果两个数组的形状在任何一个维度都不匹配,但两个数组都有其中以维度为1,则数组的形状会沿着维度为1的维度扩展,以匹配另外一个数组形状。
  • 规则3:如果两个数组的形状在任何一个维度上都不匹配,并且没有任何一个维度等于1,会广播错误。

八、numpy的运算

Numpy 中数组上的算术运算符使用元素级别。最后的结果使用新的一个数组来返回。

1、基本运算

 如果需要修改现有数组,而不是创建新数组,应该使用等号进行赋值。

 

2、常用函数 

3、规约函数

 

4、Numpy的快速排序

4.1、np.sort()

4.2、np.argsort()

返回将对此数组进行排序的索引。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/142573
推荐阅读
相关标签
  

闽ICP备14008679号