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

一.初识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 中,上面提到的这些数值类型都被归于 dtype(data-type) 对象的实例。
我们可以用 numpy.dtype(object, align, copy) 来指定数值类型。而在数组里面,可以用 dtype= 参数。

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

3.从图片认识numpy

在jupyter上操作:
读取图片:
在这里插入图片描述
运行结果:
在这里插入图片描述
查看形状:
在这里插入图片描述
展示图片:
在这里插入图片描述
将图片由.jpg格式转换为.png格式:
jpg的取值范围:0-255,png的取值范围:0-1
所以我们不能直接修改后缀名
在这里插入图片描述
保存图片:
在这里插入图片描述
运行结果:
在这里插入图片描述

4.数组对象ndarray

(1)简介
numpy中最重要的一个形式叫ndarray,n:表示的是n个,d:dimension 维度,array:数组
在这里插入图片描述
(2)参数类型
Numpy 中,ndarray 类具有六个参数,它们分别为:
在这里插入图片描述
(3)创建ndarray
创建ndarray最简单的操作:
在这里插入图片描述

但在 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,表示复制对象。
  在这里插入图片描述
列表,元组都叫序列
在这里插入图片描述
哪些能转换和不能转换???

 - 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:数组的类型。
举个例子:
在这里插入图片描述
logspace是线性生成,并且以什么为底
start从几开始 ,stop 到数字结尾, num 生成多少个数 ,base 表示的是底数, 默认以10为底

在这里插入图片描述

(4)ones 方法创建

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

numpy.ones(shape, dtype=None, order=‘C’)
其中,参数:
  shape:用于指定数组形状,例如(1, 2)或 3。
  dtype:数据类型。
  order:{‘C’,‘F’},按行或列方式储存数组。
举个例子:
在这里插入图片描述

(5)zeros 方法创建

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

numpy.zeros(shape, dtype=None, order=‘C’)
其中,参数:
  shape:用于指定数组形状,例如(1, 2)或3。
  dtype:数据类型。
  order:{‘C’,‘F’},按行或列方式储存数组。
举个例子:
在这里插入图片描述
在这里插入图片描述

(6)full方法创建

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

numpy.full(shape,fill_value=num)
举个例子:
在这里插入图片描述

(7)eye 方法创建

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

numpy.eye(N, M=None, k=0, dtype=<type ‘float’>)
#k表示从下标第几个开始
其中,参数:
  N:输出数组的行数。
  M:输出数组的列数。
  k:对角线索引:0(默认)是指主对角线,正值是指上对角线,负值是指下对角线。
举个例子:
在这里插入图片描述

(8)diag 方法创建

np.diag构建对角矩阵 np.diag(v,k=0)参数为列表即可
其中,参数:
  v可以是一维或二维的矩阵
  k<0表示斜线在矩阵的下方
  k>0表示斜线在矩阵的上方
在这里插入图片描述

逆矩阵
在这里插入图片描述
求方程解
f(x, y) = x^2 + y^2, x \epsilon [0, 100], y \epsilon {3, 4, 5}

2.随机数组抽样

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

np.random.randint(low=0,high=150,size=(5,4))
其中,参数:
  low 表示的是最小值
  high 表示最大值
  size 是一个元祖类型
在这里插入图片描述
在这里插入图片描述

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

np.random.randn(10,5)
没有固定的参数,每多加一个数字,代表多真假一个维度
在这里插入图片描述

(3)随机抽样

np.random.random(size=(456,730,3))
其中,参数:
  size 表示形状 random随即生产的范围是0-1之间
  在这里插入图片描述

(4)代表数据的稳定性

np.random.normal(loc=170,scale=100,size=50)
normal也是一个常态分布的方法
生成一个一维数组
其中,参数:
  location 是定位的的值
  scale 是波动值
  size 是数据长度
在这里插入图片描述

(5)随机数

每一个数据,都是一个维度
rand 和 random 的区别:random 需要 size来描述形状,而rand只需要我们直接给值,通过值的数量来确定形状
np.random.rand(d1,d2,dn)
在这里插入图片描述

3.文件 I/O 创建数组

(1)CSV

csv,dat是一种常用的数据格式化文件类型,为了从中读取数据,我们使用:
在这里插入图片描述

(2)Numpy 原生文件类型

使用 numpy.save 与 numpy.load 保存和读取:
在这里插入图片描述

3.ndarray 数组属性

(1)ndim,shape,size

ndim 数组的维度 (自己会计算)
shape 形状(5,4,3)
size 数组的总长度
dtype 查看数据类型
在这里插入图片描述
dtype来定义数据的类型
怎么修改数据类型? ndarray.astype()

在这里插入图片描述

(2)ndarray.T

ndarray.T用于数组的转置,与 .transpose() 相同
转置矩阵
在这里插入图片描述

(3)ndarray.imag

ndarray.imag 用来输出数组包含元素的虚部。
imaginary number 虚数
在这里插入图片描述

(4)ndarray.real

ndarray.real用来输出数组包含元素的实部。
real number 实数
在这里插入图片描述

(5)ndarray.itemsize

ndarray.itemsize输出一个数组元素的字节数。
在这里插入图片描述

(6)ndarray.nbytes

ndarray.nbytes用来输出数组的元素总字节数。
在这里插入图片描述

(7)ndarray.strides

ndarray.strides用来遍历数组时,输出每个维度中步进的字节元组。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值