数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)

文章目录

  • 一.初识NumPy模块
    • 1.简介
    • 2.数据类型
    • 3.从图片认识numpy
    • 4.数组对象ndarray
  • 二.NumPy中数组的基本操作
    • 1.内置的数组创建方法
      • (1)从列表或元组转换
      • (2)arange 方法创建
      • (3)linspace 方法创建
      • (4)ones 方法创建
      • (5)zeros 方法创建
      • (6)full方法创建
      • (7)eye 方法创建
      • (8)diag 方法创建
    • 2.随机数组抽样
      • (1)生成随机的整数型矩阵
      • (2)标准的常态分布(正态,高斯)
      • (3)随机抽样
      • (4)代表数据的稳定性
      • (5)随机数
    • 3.文件 I/O 创建数组
      • (1)CSV
      • (2)Numpy 原生文件类型
    • 3.ndarray 数组属性
      • (1)ndim,shape,size
      • (2)ndarray.T
      • (3)ndarray.imag
      • (4)ndarray.real
      • (5)ndarray.itemsize
      • (6)ndarray.nbytes
      • (7)ndarray.strides

一.初识NumPy模块

1.简介

(1)概念
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发。
(2)优势
其开源免费、编码效率高、执行效率高、扩展性好
(3)安装
可以使用pip install numpy进行安装,当然,如果我们的计算机中已经安装好了Anaconda,那就不需要安装了,Anaconda会帮我们安装许多库,其中就有Numpy库

2.数据类型

Python 本身支持的数值类型有 int(整型,python2 中存在 long 长整型)、float(浮点型)、bool(布尔型) 和 complex(复数型)。
而 Numpy 支持比 Python 本身更为丰富的数值类型,细分如下:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第1张图片
在 Numpy 中,上面提到的这些数值类型都被归于 dtype(data-type) 对象的实例。
我们可以用 numpy.dtype(object, align, copy) 来指定数值类型。而在数组里面,可以用 dtype= 参数。

拓展:np.float32:在一些老牌公司里,被叫作E8M23
np.float64:被叫作E11M52

3.从图片认识numpy

在jupyter上操作:
读取图片:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第2张图片
运行结果:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第3张图片
查看形状:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第4张图片
展示图片:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第5张图片
将图片由.jpg格式转换为.png格式:
jpg的取值范围:0-255,png的取值范围:0-1
所以我们不能直接修改后缀名
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第6张图片
保存图片:
在这里插入图片描述
运行结果:
在这里插入图片描述

4.数组对象ndarray

(1)简介
numpy中最重要的一个形式叫ndarray,n:表示的是n个,d:dimension 维度,array:数组
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第7张图片
(2)参数类型
Numpy 中,ndarray 类具有六个参数,它们分别为:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第8张图片
(3)创建ndarray
创建ndarray最简单的操作:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第9张图片

但在 numpy 中,我们一般主要通过以下 5 种途径创建数组,它们分别是:

从 Python 数组结构列表,元组等转换。
使用 np.arange、np.ones、np.zeros 等 numpy 原生方法。
从存储空间读取数组。
通过使用字符串或缓冲区从原始字节创建数组
使用特殊函数,如 random。

二.NumPy中数组的基本操作

1.内置的数组创建方法

(1)从列表或元组转换

在 numpy 中,我们使用 numpy.array 将列表或元组转换为 ndarray 数组。其方法为:

numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
其中,参数:
  object:列表、元组等。
  dtype:数据类型。如果未给出,则类型为被保存对象所需的最小类型。
  copy:布尔来写,默认 True,表示复制对象。
  数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第10张图片
列表,元组都叫序列
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第11张图片
哪些能转换和不能转换???

 - yes : list  tuple  range
 - no : dict  set  generator str  num function class model

(2)arange 方法创建

除了直接使用 array 方法创建 ndarray,在 numpy 中还有一些方法可以创建一些有规律性的多维数。首先,我们来看一看 arange()。arange() 的功能是在给定区间内创建一系列均匀间隔的值。方法如下:

numpy.arange(start, stop, step, dtype=None)
你需要先设置值所在的区间,这里为 [开始, 停止),你应该能发现这是一个半开半闭区间。然后,在设置step步长用于设置值之间的间隔。最后的可选参数dtype可以设置返回ndarray` 的值类型。
举个例子:
在这里插入图片描述

(3)linspace 方法创建

linspace方法也可以像arange方法很像,创建数值有规律的数组。inspace用于在指定的区间内返回间隔均匀的值。其方法如下:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
其中,参数:
  start:序列的起始值。
  stop:序列的结束值。
  num:生成的样本数。默认值为50。
  endpoint:布尔值,如果为真,则最后一个样本包含在序列内。
  retstep:布尔值,如果为真,返回间距。
  dtype:数组的类型。
举个例子:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第12张图片
logspace是线性生成,并且以什么为底
start从几开始 ,stop 到数字结尾, num 生成多少个数 ,base 表示的是底数, 默认以10为底

数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第13张图片

(4)ones 方法创建

numpy.ones 用于快速创建数值全部为 1 的多维数组。其方法如下:

numpy.ones(shape, dtype=None, order=‘C’)
其中,参数:
  shape:用于指定数组形状,例如(1, 2)或 3。
  dtype:数据类型。
  order:{‘C’,‘F’},按行或列方式储存数组。
举个例子:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第14张图片

(5)zeros 方法创建

zeros 方法和上面的 ones 方法非常相似,不同的地方在于,这里全部填充为 0。zeros 方法和 ones 是一致的。

numpy.zeros(shape, dtype=None, order=‘C’)
其中,参数:
  shape:用于指定数组形状,例如(1, 2)或3。
  dtype:数据类型。
  order:{‘C’,‘F’},按行或列方式储存数组。
举个例子:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第15张图片
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第16张图片

(6)full方法创建

numpy.full用于创建一个自定义形状的数组,可以自己指定一个值,该值填满整个矩阵。

numpy.full(shape,fill_value=num)
举个例子:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第17张图片

(7)eye 方法创建

numpy.eye 用于创建一个二维数组,其特点是k 对角线上的值为 1,其余值全部为0。方法如下:

numpy.eye(N, M=None, k=0, dtype=)
#k表示从下标第几个开始
其中,参数:
  N:输出数组的行数。
  M:输出数组的列数。
  k:对角线索引:0(默认)是指主对角线,正值是指上对角线,负值是指下对角线。
举个例子:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第18张图片

(8)diag 方法创建

np.diag构建对角矩阵 np.diag(v,k=0)参数为列表即可
其中,参数:
  v可以是一维或二维的矩阵
  k<0表示斜线在矩阵的下方
  k>0表示斜线在矩阵的上方
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第19张图片

逆矩阵
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第20张图片
求方程解
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第21张图片

2.随机数组抽样

(1)生成随机的整数型矩阵

np.random.randint(low=0,high=150,size=(5,4))
其中,参数:
  low 表示的是最小值
  high 表示最大值
  size 是一个元祖类型
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第22张图片
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第23张图片

(2)标准的常态分布(正态,高斯)

np.random.randn(10,5)
没有固定的参数,每多加一个数字,代表多真假一个维度
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第24张图片

(3)随机抽样

np.random.random(size=(456,730,3))
其中,参数:
  size 表示形状 random随即生产的范围是0-1之间
  数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第25张图片

(4)代表数据的稳定性

np.random.normal(loc=170,scale=100,size=50)
normal也是一个常态分布的方法
生成一个一维数组
其中,参数:
  location 是定位的的值
  scale 是波动值
  size 是数据长度
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第26张图片

(5)随机数

每一个数据,都是一个维度
rand 和 random 的区别:random 需要 size来描述形状,而rand只需要我们直接给值,通过值的数量来确定形状
np.random.rand(d1,d2,dn)
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第27张图片

3.文件 I/O 创建数组

(1)CSV

csv,dat是一种常用的数据格式化文件类型,为了从中读取数据,我们使用:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第28张图片

(2)Numpy 原生文件类型

使用 numpy.save 与 numpy.load 保存和读取:
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第29张图片

3.ndarray 数组属性

(1)ndim,shape,size

ndim 数组的维度 (自己会计算)
shape 形状(5,4,3)
size 数组的总长度
dtype 查看数据类型
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第30张图片
dtype来定义数据的类型
怎么修改数据类型? ndarray.astype()

数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第31张图片

(2)ndarray.T

ndarray.T用于数组的转置,与 .transpose() 相同
转置矩阵
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第32张图片

(3)ndarray.imag

ndarray.imag 用来输出数组包含元素的虚部。
imaginary number 虚数
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第33张图片

(4)ndarray.real

ndarray.real用来输出数组包含元素的实部。
real number 实数
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第34张图片

(5)ndarray.itemsize

ndarray.itemsize输出一个数组元素的字节数。
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第35张图片

(6)ndarray.nbytes

ndarray.nbytes用来输出数组的元素总字节数。
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第36张图片

(7)ndarray.strides

ndarray.strides用来遍历数组时,输出每个维度中步进的字节元组。
数据分析的NumPy模块(一):初始NumPy模块、数组的基本操作(内置数组创建方法、随机数组抽样、文件 I/O 创建数组、ndarray数组属性)_第37张图片

你可能感兴趣的:(数据分析基础知识,numpy,数据分析)