Numpy基础
1、主要作用
进行科学计算(支持矩阵和ndarray数组对象),内存连续(访问效率高), 支持并行运算,有两种存储风格(F风格—列优先存储, C风格—行优先存储)
2、数组基础
import numpy as np
arr = np.array(....) # 创建简单的数组
arr.size # 4 数组中的元素个数
arr.itemsize # 数组中各个元素的占位大小
arr.dtype # 数组中元素的数据类型
arr.ndim # 数组的维度
arr.shape # 数组的形状, 元组形式返回, 返回的数据长度为数组的维度大小。
3、数组的创建
固定数组的创建
1、使用array
直接创建
import numpy as np
np.array()
arr = np.array([1,2,3,4,5])
print('arr:\n',arr)
print('arr:\n',type(arr))
输出结果:
arr:
[1 2 3 4 5]
arr:
<class 'numpy.ndarray'>
2、使用arange
来创建数组
# 参数1 : 开始位置 --包含开始位置
# 参数2: 结束位置---不包含结束位置
# 参数3: 步长
arr = np.arange(0, 10, 1)
arr = np.arange(10, dtype=np.float32) # 当开始位置为0,并且步长为1,那么可以只指定结束值即可!
# arr = np.arange(0, 10, 2)
print('arr\n', arr)
print('arr\n', type(arr)) # <class 'numpy.ndarray'>
3、使用linsapce
来创建数组-----为等差数组
# 参数1:开始位置---包含开始位置
# 参数2 : 结束位置---包含结束位置
# 参数3 : 生成数组的元素的个数
# 参数 endpoint = True ---指的是包含结束位置
# 参数 dtype ---指定数据的类型
arr = np.linspace(0, 10, 6)
print('arr:\n', arr)
print('arr:\n', type(arr))
结果:
arr:
[ 0. 2. 4. 6. 8. 10.]
arr:
<class 'numpy.ndarray'>
4、使用logspace
创建数组-----为等比数组
# 参数1 ---开始位置
# 参数2 ---结束位置
# 参数3 ---生成数组的元素的个数
# 注意:参数1、2都针对的是指数
# 参数 base --就是底数
arr = np.logspace(0, 2, 3, base=10)
print('arr:\n', arr)
print('arr:\n', type(arr))
结果:
arr:
[ 1. 10. 100.]
arr:
<class 'numpy.ndarray'>
5、使用zeros
创建数组-----为全为0的数组
# 参数shape ---生成数组的形状--元组
# 参数dtype ---元素的数据类型
arr = np.zeros(shape=(2,3),dtype=np.int32)
print('arr:\n',arr)
print('arr:\n',type(arr))
结果:
arr:
[[0 0 0]
[0 0 0]]
arr:
<class 'numpy.ndarray'>
6、使用ones
创建数组-----为全为1的数组
# 参数shape ---生成数组的形状--元组
# 参数dtype ---元素的数据类型
arr = np.ones(shape=(2,3),dtype=np.int32)
print('arr:\n',arr)
print('arr:\n',type(arr))
结果:
arr:
[[1 1 1]
[1 1 1]]
arr:
<class 'numpy.ndarray'>
7、使用diag
来创建数组----类似于对角矩阵,但可以控制偏移量
参数—对角线上的元素!!
k-----用来控制偏移量的,正往右上角偏移,负则往左下角偏移
arr = np.diag([1, 2, 3, 4])
print('arr:\n', arr)
print('arr:\n', type(arr))
结果:
arr:
[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]
arr:
<class 'numpy.ndarray'>
添加 k参数
arr = np.diag([1, 2, 3, 4], k=1)
print('arr:\n', arr)
print('arr:\n', type(arr))
结果:
arr:
[[0 1 0 0 0]
[0 0 2 0 0]
[0 0 0 3 0]
[0 0 0 0 4]
[0 0 0 0 0]]
arr:
<class 'numpy.ndarray'>
8、使用eye
创建数组----类似于单位矩阵
# 参数--传递一个值,表示生成一个 参数*参数的 类似于单位矩阵的数组
arr = np.eye(3)
print('arr:\n', arr)
print('arr:\n', type(arr))
print('arr:\n', arr.dtype)
结果:
arr:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
arr:
<class 'numpy.ndarray'>
arr:
float64
随机数组的创建
1、创建[0,1)
内的均匀分布的数组
使用random.random
创建
参数:可以是生成数组的元素个数 或者 是生成数组的形状!
arr = np.random.random(10) ------ 一维数组
arr = np