目录
什么是NumPy
NumPy(Numerical Python) 是科学计算基础库,提供大量科学计算相关功能,比如数据 统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组 与矩阵运算,Numpy 支持向量处理 ndarray 对象,提高程序运算速度。
Numpy_Ndarray对象
Numpy中定义的最终要的对象是称为ndarray的N维数组类型。它描述相同类型的元素集合。可以使用基于零的索引访问集合中的项目。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
上面的构造器接受以下参数:
序号 | 参数 | 描述 |
---|---|---|
1. | object | 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。 |
2. | dtype | 数组的所需数据类型,可选。 |
3. | copy | 可选,默认为true,对象是否被复制。 |
4. | order | C(按行)、F(按列)或A(任意,默认 |
5. | subok | 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类 |
6. | ndimin | 指定返回数组的最小维数 |
import numpy as np
#例子01
#a = np.array([1,2,3])
#print(a)
#print(type(a))
#多于一个维度
#a2 = np.array([[1,2],[3,4]])
#print(a2)
#最小维度
#a3 = np.array([1,2,3,4,5],ndmin = 2)
#print(a3)
NumPy数组创建
numpy.empty
创建指定形状和dtype的未初始化数组
numpy.empty(shape, dtype = float, order = ‘C’)
构造器接受下列参数:
序号 | 参数 | 描述 |
---|---|---|
1. | Shape | 空数组的形状,整数或整数元组 |
2. | Dtype | 所需的输出数组类型,可选 |
3. | Order | C’为按行的 C 风格数组,'F’为按列的 Fortran 风格数组 |
#例: 数组元素为随机值
arr = np.empty((3,3),dtype = 'i1')
print(arr)
numpy.zeros
返回特定大小,以0填充
arr = np.zeros((3,3))
print(arr)
#自定义类型
arr = np.zeros((3,3), dtype = [('x', 'i4'), ('y', 'i4')])
print(arr)
numpy.ones
返回特定大小,以1填充
arr = np.ones((2,3,4))
print(arr)
arr = np.ones((3,3), dtype = [('x', 'i4'), ('y', 'i4')])
print(arr)
numpy.asarray
类似 numpy.array 可以将Python序列转换为ndarray
array和asarray的区别:array默认的是一个列表元素,
但是asArray是一个维度/矩阵
#来自列表
arr = [1,2,3,4]
arr2 = np.asarray(arr)
print(arr2)
print(type(arr))
print(type(arr2))
#来自元组
arr = (1,2,3,4)
arr2 = np.asarray(arr)
print(arr2)
print(type(arr))
print(type(arr2))
#来自元组列表
# arr = [(1,2,3,4),(5,6,7,8)]
# arr2 = np.asarray(arr)
# print(arr2)
# print(type(arr))
# print(type(arr2))
numpy.arange
这个函数返回ndarray对象,包含给定范围内的等间隔值
numpy.arange(start,stop,step,dtype)
arr = np.arange(5,dtype = float)
print(arr)
此结果减小了数学里面的误差思想,在数据挖掘,数据分析等里面使用此思想,降低数据误差
numpy.linspace
与arange函数类似 等差数列
numpy.linspace(start,stop,num,endpoint,retstep,dtype)
序号 | 参数 | 描述 |
---|---|---|
1 | start | 起始值 |
2 | stop | 结束值 |
3 | num | 生成等间隔样例的数量,默认为50 |
4 | endpoin 序列中是否包含stop 值 默认为 True |
arr = np.linspace(10,20,9)
print(arr)
arr = np.linspace(10,20,5,endpoint=False)
print(arr)
arr = np.linspace(10,20,5,retstep=True)
print(arr) #返回步长
numpy.logspace
等比数列
numpy.logscale(start, stop, num, endpoint, base, dtype)
序号 | 参数 | 描述 |
---|---|---|
1. | start | 起始值是base ** start |
2. | stop | 终止值是base ** stop |
3. | num | 范围内的数值数量,默认为50 |
4. | endpoint | 如果为true,终止值包含在输出数组当中 |
5. | base | 对数空间的底数,默认为10 |
6. | dtype | 输出数组的数据类型,如果没有提供,则取决于其它参数 |
arr = np.logspace(1,10,10,base = 2)
#以2为底的空间矩阵
print(arr)
random模块
序号 | 模块 | 描述 |
---|---|---|
1 | rand | 返回 0 - 1 随机值 |
2 | randn | 返回一个样本具有标准正态分布 |
3 | randint | 返回随机的整数,位于半开区间[low,hight)size = 10 (3,3) |
4 | random_integers(low[, high, size]) | 返回随机的整数,位于闭区间 |
5 | random | 返回随机浮点数 |
arr = np.random.rand(9).reshape(3,3)
#9表示元素的个数 reshape(3,3)3行3列输出
print(arr)
#在人工资能里面利用正态分布函数操作:将机器学习的数据进行矩阵化图标分析
#人工智能/机器学习的核心:第一件事:获取'数据集&#