numpy 操作矩阵与数组

本文介绍了使用Python的NumPy库进行矩阵和数组操作的方法,包括矩阵创建、运算、属性查询,以及数组的创建、索引、排序和统计分析等内容。

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

numpy 操作矩阵与数组

numpy是python进行数据分析时,必不可少的一个第三方模块.它提供了大量的方法帮我们操作矩阵和数组.

矩阵的创建

import numpy as np
mat = np.mat("1 2 3; 2 3 4; 1 2 3")
# 注意 空格表示同一行中的另外一个元素,分号表示换行

矩阵的运算

矩阵相加

mat1 + mat2

矩阵相乘

mat1 * mat2

矩阵转置

mat.T

逆矩阵

mat.I

矩阵数乘

4*mat

对应矩阵相乘

np.multiply(amt1,mat2)

矩阵的属性

查看矩阵的结构

mat.shape

查看矩阵的个数

mat.size

矩阵的类型

mat.dtype

矩阵的维度

mat.ndim

数组的创建

arr = np.array([1, 2, 3])

数组的属性

查看数组的结构

arr.shape

查看数组的个数

arr.size

数组的类型

arr.dtype

数组元素的类型

arr.ndim

数组的索引

一维数组的索引

arr[::-1]

二维数组的切片

arr[::-1, :: -1]

不同行不同列的切片

arr[(0,1),(0,2)]

布尔取值

mask = np.array([1, 0, 1],dtype = np.bool)
arr[mask,:2]

等差数列

np.linspace(start ,1end, n)

等比数列

np.logspace(start,end,n,basepoint = m)
构建特殊类型的数组

构建全一数组

np.ones(()) # 传的第一个参数是一个结构元组

构建全零数组

np.zeros(())

单位数组

np.eye() # 只需传一个参数,表示数组的行数及列数

对角阵数组

np.diag([]) # 中间的列表传到的是对角线的值

0-1间的n个随机数

np.random.random(n) # 参数为随机数的个数

随机整数

np.random.randint(2,4,[4,3])# 参数分别为:随机范围,结构

正则分布随机数

np.random.randn()

形态变换

np.arange(n).reshape(()) # 参数表示变换后的数组的结构

横向合并

np.hastack((arr1,arr2))# 行数一致

纵向合并

np.vstack(()) # 列数一致

沿着轴拼接

np.concatenate((arr1,arr2),axis=0)# axis是轴数,只能填写现有轴

横向分割

np.hsplit(arr1,n|()) # 参数为元祖时,元组的元素为分割点(索引)

纵向分割

np.vsplit()

沿轴分割

np.split(arr1,axis=0) # 轴存在才可以切
数组的运算
四则运算

相乘

arr1 * arr2

求幂

arr1**arr2

相加

arr1  + arr2

相除

arr1/arr2

整除

arr1 //arr2

取余

arr1 % arr2
比较运算

< > = !=

对应比较,返回值是一个bool数组.

逻辑运算

and

np.all()

or

np.any()

广播运算

# 实例:
 [[1 2 3]
  [1 2 3]    
  [1 2 3]  
    ] + [1 1 1]
= [ [2 3 4]
   [2 3 4]
   [2 3 4]
 ]
# 即 一个数组与一个列数组或者行数组进行计算,会将列数组或者行数组与对应列或对应行中的元素依次计算.
排序
arr1.sort() # 修改原数组
arr1.argsort() # 返回排序后元素的索引
去重python
np.unique(arr2,axios=0,return_counts=True) # 按轴方向进行去重,return_counts设置为True后会返回元素的数量
文件操作

保存为二进制文件

np.save('arr2.npy',arr2) # 后缀名为npy或者npz,必须用numpy来操作.

读取二进制文件

np.load('arr.npy')

多个数组的保存

np.savez('arrz',arr1,arr2)

多数组文件的读取

data = np.load('arr.npz')

查看npzfile下的文件

print(list(data)) # 查看文件列表
print(data['arr_0']) # 查看文件内容

txt文件的保存与读取

np.savetxt('arr2',arr2,fmt='%d',delimiter=',',dtype='str')
统计分析方法

最大最小值

arr.min(axis=0) # 最小值
arr.max(axis=0) # 最大值

最大值索引

arr.argmax(axis=0)# 返回值为最大值索引
arr.argmin(axis=0)# 返回值为最小值索引

标准差,方差

arr.std(axis=0) #方差
arr.var(axis=0) # 标准差

求和,平均平均值

arr.sum(axis=0) # 求和
arr.mean(axis=0)# 求平均值

累计求和

arr.cumsum()

累计求积

arr.cumprod() # 注意数据类型的上下限
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值