机器学习过程中经常遇到的numpy操作(上机可实现)

本文详细介绍了使用Python的numpy库进行矩阵创建、操作(如选择、变换、统计计算),以及随机数生成的相关知识,涵盖了矩阵形状、大小、维度、函数应用、统计分析等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一,创建矩阵

##创建矩阵
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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值