一,创建矩阵
##创建矩阵
import numpy as np
#创建矩阵
matrix=np.array([
[2,3],
[2,4],
[2,8]
])
print(matrix)
二,创建一个稀疏矩阵
#创建一个稀疏矩阵
import numpy as np
from scipy import sparse
matrix=np.array([[0,0],
[0,1],
[3,0]
])
print(matrix)
#创建一个压缩的稀疏行矩阵
matrix_sparse=sparse.csr_matrix(matrix)
print(matrix_sparse)
# 结果 (1, 1) 1
# (2, 0) 3
三,选择元素
#选择元素
import numpy as np
#创建一个行向量
vector=np.array([1,5,6,9,7,8])
#选出第二个元素
print(vector[1]) #5
#创建一个矩阵
matrix=np.array([[1,5,6],
[9,6,8],
[8,2,6]])
#输出第二行第二列
print(matrix[1][1]) #结果 6
#选取所有元素
print(vector[:]) #[1 5 6 9 7 8]
#选取一到三个数
print(vector[:2]) #[1 5]
#选取最后一个元素
print(vector[:-1])
四,展示一个矩阵的形状(shape),大小(size),和维数(ndim)
#展示一个矩阵的形状(shape),大小(size),和维数(ndim)
import numpy as np
#创建一个矩阵
matrix=np.array([[1,2,5],
[5,9,7],
[9,3,8]])
#查看行数和列数
print(np.shape(matrix))
# (3, 3)
#查看大小(元素数量 行数*列数)
print(np.size(matrix)) # 9
#查看维数
print(np.ndim(matrix)) #2维
五,对数组中的元素同时应用一个函数,使用numpy的vecotrize
#对数组中的元素同时应用一个函数,使用numpy的vecotrize
import numpy as np
matrix=np.array([[5,8,9],
[1,5,9],
[1,2,3]])
#创建一个函数,使矩阵中的每个函数加上100
add_100=lambda i:i+100
#创建向量化函数
vectorized_add_100=np.vectorize(add_100)
#对矩阵中的所有函数应用这个函数
matrix_operation=vectorized_add_100(matrix)
print(matrix_operation)
# 结果 [[105 108 109]
# [101 105 109]
# [101 102 103]]
六,找到最大值和最小值
#找到最大值和最小值,以及选择特定行列的最大最小元素
import numpy as np
matrix=np.array([[4,8,9],
[7,8,5],
[9,6,3]])
print(np.max(matrix),np.min(matrix))
#答案 9 3
#使用axis参数可以对特定的行,列操作
print(np.max(matrix,axis=0)) #找到每一列的最大元素
print(np.min(matrix,axis=1)) #找到每一行的最大元素
#结果 [9 8 9]
# [4 5 3]
七,计算平均值mean,方差var,和标准差std (mean,var,std)
#计算平均值mean,方差var,和标准差std (mean,var,std)
import numpy as np
matrix=np.array([[4,8,9],
[8,9,5],
[8,2,9]])
#输出平均值mean,方差var,和标准差std
print(np.mean(matrix),np.var(matrix),np.std(matrix))
#结果 6.888888888888889 5.876543209876543 2.4241582476968255
#计算每一列的平均值
print(np.mean(matrix,axis=0))
# 结果 [6.66666667 6.33333333 7.66666667]
八,矩阵变形(reshape)
#矩阵变形(reshape)
import numpy as np
matrix=np.array([[4,8,9],
[8,9,5],
[8,2,9],
[9,5,2]])
print(matrix.reshape(2,6)) #原矩阵和新矩阵元素个数一样
# [[4 8 9 8 9 5]
# [8 2 9 9 5 2]]
#利用-1,确定行数或者列数,其余自动补充
print(matrix.reshape(-1,1))
九,转置向量或矩阵
#转置向量或矩阵
import numpy as np
matrix=np.array([[4,8,9],
[8,9,5],
[8,2,9],
[9,5,2]])
print(matrix.T)
# 结果 [[4 8 8 9]
# [8 9 2 5]
# [9 5 9 2]]
十,展开一个矩阵(flatten)
#展开一个矩阵(flatten)
import numpy as np
matrix=np.array([[4,8,9],
[8,9,5],
[8,2,9],
[9,5,2]])
print(matrix.flatten())
# [4 8 9 8 9 5 8 2 9 9 5 2]
十一,计算矩阵的秩 matrix_rank
#计算矩阵的秩 matrix_rank
import numpy as np
matrix=np.array([[4,8,9],
[8,9,5],
[8,2,9],
[9,5,2]])
print(np.linalg.matrix_rank(matrix))
# 结果 3
十二,获取矩阵对角线元素 diagonal
#获取矩阵对角线元素 (diagonal)
import numpy as np
matrix=np.array([[4,8,9],
[8,9,5],
[8,2,9]
])
print(matrix.diagonal())
#[4 9 9]
十三,生成随机数 (random)
#生成随机数 (random)
import numpy as np
np.random.seed(0)
#生成3个0.0到1.0之间的随机浮点数
a=np.random.random(3) #random 默认0到1
print(a)
# [0.5488135 0.71518937 0.60276338]
#生死3个1到10之间的随机数
b=np.random.randint(0,11,3) #结果 [3 7 9]
print(b)
#从平均值0.0和标准差1.0的正太分布中抽三个
c=np.random.normal(0.0,1.0,3)
print(c) #[-1.42232584 1.52006949 -0.29139398]
#从大于或等于1.0并且小于3.0中抽取3个数
d=np.random.uniform(1.0,3.0,5)
print(d)
#[1.54531259 1.95533023 2.62433746 1.95995434 1.78556er