NumPy简介
Numerical Python 的简称
基于数组,可用来存储和处理大型矩阵
高性能计算和数据分析的基础包
需导入库 import numpy as np
数组对象
N维数组对象,即ndarray对象,该对象具有矢量算数能力和复杂的广播能力,可执行科学计算。拥有对高维数组的处理能力,这是数值计算中不可缺少的一部分
ndarray对象中的重要属性
- ndarray.ndim 维度个数 比如一维、二维、、、、
- ndarray.shape 数组的维度。这是一个整数的元组,n行m列shape 属性为(n,m)
- ndarray.dtype 描述数组中元素类型的对象,numpy.in32,numpy.float64
- ndarray.itemsize 数组中每个元素的字节大小
创建ndarray对象
#创建一个一维数组
data1 = np.array([1, 2, 3])
#创建一个二维数组
data2 = np.array([1, 2, 3], [4, 5, 6])
通过Zeros()函数创建元素值都是0的数组;通过ones()函数创建元素都是1的数组
#创建元素全是0的数组
np.zeros((3, 4))
# 创建元素值全是1的数组
np.ones((3, 4))
通过empty()函数创建一个新的数组,该数组只分配了内存空间,它里面填充的元素都是随机的
# 创建元素值全是随机数的数组
np.empty((5, 2))
通过arange()函数可以创建一个等差数组,它的功能类似与range() 返回的结果是列表
np.arange(1, 20, 5)
随机数
rand()函数隶属于numpy.random模块 作用是随机生成N维浮点数组
# 随机生成一个二维数组
np.random.rand(3, 3)
random模块还包括可以生成服从多种概率分布随机数的其他函数
函数 | 描述 |
seed | 生成随机数的种子 |
rand | 产生均匀分布的样本值 |
randint | 从给定的上下限范围内随机取整数 |
normal | 产生正态分布的样本值 |
beta | 产生Beta分布的样本值 |
uiform | 产生在[0, 1]中的均匀分布的样本值 |
seed()函数可以保证生成的随机数具有可预测性,也就是说产生的随机数相同。
numpy.random.seed(seed=None)
当调用seed()函数时,如果传递给seed参数的值相同,则每次生成的随机数都是一样的。
# 生成随机数的种子
np.random.seed(0)
#随机生成包含5个元素的浮点数组
np.random.ran(5)
当传递的参数值不同或者不传递参数时,则系统会自己选择值,即多次生成随机数都不同
#生成随机数的种子
np.random.seed(1)
#随机生成包含5个元素的浮点数组
np.random.rand(5)
#生成随机数的种子
np.random.rand(2)
#随机生成包含5个元素的浮点数组
np.random.rand(5)
ndarray对象的数据类型
每一个NumPy内置的数据类型都有一个特征码,他能唯一标识一种数据类型
特征码 | 含义 |
b | 布尔型 |
u | 无符号整型 |
c | 复数类型 |
S a | 字节字符串 |
V | 原始数据 |
i | 有符号整型 |
f | 浮点型 |
O | Python对象 |
U | unicode字符串 |
ndarry.dtype可以创建一个表示数据类型的对象,如果希望获取数据类型的名称,则需要访问na,e属性
data1 = np.array([1, 2, 3], [4, 5, 6])
data1.dtype
data1.dtype.nmae
通过zeros() ones() empty()函数创建的数组 默认的数据类型 为float64
数据类型转换
ndarray 对象的数据类型可以通过astype()方法进行转换
data1 = np.array([[1, 2, 3], [4, 5, 6]])
data1.dtype
#数据类型转换为float64
float_data = data1.astype(np.floa64)
float_data.dtype
矢量化运算
数组广播
数组与标量运算
NumPy通用函数
二元通用函数
数组统计
数组排序