关于NumPy
Python 提供了一个array 模块。array 和list 不同,它直接保存数值,和C 语言的一维 数组比较类似。但是由于Python 的array 模块不支持多维,也没有各种运算函数,因此也 不适合做数值运算。NumPy 的诞生弥补了这些不足。NumPy 提供了一种存储单一数据类型 的多维数组——ndarray。
NumPy的应用
list和array的区别
生成list列表
# Python的列表
a = [1,2,3]
b = [4,5,6]
print(a + b)
print(a * 3)
结果
生成array数组
import numpy as np
np.random.random([3,3,3])
结果
创建数组对象
创建一维数组(tips:相同元素个数才能相加)
#创建一维数组
arr1 = np.array([1,2,3,4])
arr2 = np.array([1,1])
arr1
arr1 * 3
print(arr1 + 10) #每个元素+10
不同维度类型
#创建一维数组
arr1 = np.array([1,2,3,4])
#创建二维数组
arr2 = np.array([[1,2,3,4],[4,5,6,7],[7,8,9,10]])
arr2
# 查看数组的维度
print("=========================")
arr1.ndim
arr2.ndim
#查看数组结构(shape)
arr1.shape
arr2.shape
#查看数组类型(dtype)
arr1.dtype
arr2.dtype
print("=========================")
#查看数组元素个数(size)
arr1.size
arr2.size
#查看数组每个元素大小(itemsize)
arr1.itemsize
arr2.itemsize
结果
重设形状 reshape方法
# reshape
arr2.reshape(2,6)
arr2
arr2.reshape(3,-1)
注意:使用reshape 时,原来的array数组形状是不变的
arange函数创建数组
#使用Numpy的arange函数创建数组
list (range(1,10))
np.arange(1,10)
np.arange(1,10,2) #步长
np.arange(1,25).reshape(4,6) #4行6列
结果
linspace函数常见等差数列数组
# 创建9个范围在0到1的等差数组
np.linspace(0,1,9)
结果
logspace函数创建等比数列数组
# 创建5个10的0次方到10的2次方的等比数组
np.logspace(0,2,5)
结果
zeros函数创建全0数组
#使用Numpy的zeros函数创建全0数组
np.zeros(5)
np.zeros((5,))
np.zeros((3,4))
结果
ones函数创建全1数组
#使用Numpy的ones函数创建全1数组
np.ones(5)
np.ones((3,4))
结果
eye函数创建对角单位函数
#使用Numpy的eye函数创建对角单位数组
np.eye(4)
np.eye(4)*3
结果
dig函数创建对角数组
#使用Numpy的diag函数创建对角数组
np.diag([1,3,5,7])
结果
数据类型转换
#数组数据类型的变换
arr = np.array([1,2,3])
arr.dtype
arr1 = np.float64(arr)
arr1.dtype
结果
生成随机数
标准库random (python中的random库)
import random
random.random() #生成0-1的随机数
random.randint(1,3) #包含3
结果
tips: random.randint( x , y )生成的是[x,y]闭区间的范围
生成随机数组的random函数
注意是NumPy库的random子库中的random函数
import numpy as np
np.random.random() #生成0-1的随机数
np.random.random(5) #一维随机数组
np.random.random((2,3)) #二维随机数组
结果
生成服从均匀分布的随机数数组
注意是NumPy库的random子库中的random函数
np.random.rand(5)
np.random.rand(3,4) #注意只有一对()
结果
生成服从正态分布的随机数数组
注意是NumPy库的random子库中的random函数
np.random.randn(5)
np.random.randn(3,4) #注意只有一对()括号
结果
生成给定上下限的随机数数组
注意是NumPy库的random子库中的random函数
np.random.randint(2,10,(3,4)) # 不包含终端,生成2-10的随机数以3行4列展示
结果