目录
矩阵的创建
第一种
arange(m,n):包左不包右,即:m到n-1的数(左边界默认0)
reshape(行数,列数)
import numpy as np # 导包:下面代码默认导包
arr1 = np.arange(15).reshape(3,5)
print(arr1)
得到一个3行5列的二维数组(矩阵),如下:
[[0,1,2,3,4]
[5,6,7,8,9]
[10,11,12,13,14]]
第二种:自定义矩阵
arr2 = array([[3,3,1],[4,5,2],[7,8,8]])
print(arr2)
打印出
[[3,3,1]
[4,5,2]
[7,8,8]]
第三种:特定矩阵
零矩阵
用法:np.zeros(15).reshape(3,5)
'1'矩阵
用法:np.ones(15).reshape(3,5)
空矩阵
用法:np.empty(15).reshape(3,5)
随机矩阵
随机数的函数random
rand
arr3 = np.random.rand(3,5) # [0,1)中的随机小数,rand(行数,列数)
print(arr3)
randn
arr4 = np.random.randn(3,5) # 正态分布的数,rand(行数,列数)
print(arr4)
randint
arr5 = np.random.randint(1,5, size=(3,5)) # 随机整数,[1,5)之间的整数
print(arr5)
uniform
arr6 = np.random.uniform(1,5, size=(3,5)) # 随机小数. [1,5)之间 rand(行数,列数)
print(arr6)
特殊矩阵的创建
分为等比数列的矩阵和等差数列的矩阵
等比数组
arr7 = np.logspace(2,6,4,base=2,endpoint=False) # logspace(幂起始,幂结束,base底数,endpoint=True(包左包右),False(包左不包右)
print(arr7)
等差数组
arr8 = np.linspace(2,6,6,endpoint=True) # 等差数列,endpoint为True包右,False不包右
print(arr8)
当然也可以和reshape结合使用
等比矩阵
arr7_1 = np.logspace(2,6,4,base=2,endpoint=False).reshape(2,2)
print(arr7_1)
等差矩阵
arr8_1 = np.linspace(2,6,6,endpoint=True).reshape(2,3)
print(arr8_1)
Numpy的属性
arr = np.random.randint(3,6,size=(3,5))
print(f'数组的轴(维度):{arr.ndim}') # number of dimensions
print(f'数组的形状(几行几列):{arr.shape}') # shape
print(f'数组的元素类型:{arr.dtype}') # data type
print(f'数组中元素占的字节:{arr.itemsize}') # item是数组中的元素
print(f'数组中元素的个数{arr.size}') # 数组中元素的个数
print(f'数组的类型{type(arr)}') # arr的数据类型
Numpy中数据运算
乘法
这里的乘法不是真正的矩阵相乘,而是(每个元素相乘)需要矩阵的行列数相同
直接用 * 或者 np.multiply(arr1,arr2)
除法
同上面的乘法,每个元素相除,同样要求矩阵的行列数相同.
用法:np.divide(arr1,arr2)
向上取整
将数字向上取整,例如: -0.4 取到 0 , 10.2 取到 11, 43.5 取到 44
用法:np.ceil(arr1)
向下取整
将数字向下取整,例如: - 42.3取到 -43 , 14.3 取到 14, 43.5 取到 44
用法:np.floor(arr1)
四舍五入
小数位小于 5 取0, 大于等于5 向上进一位.
用法:np.rint(arr1)