声明

当前的知识用于本人复习使用,当前的内容涉及到,numpy中矩阵间的操作,数组间的合并以及分割,还有使用numpy读取txt格式的文件并执行数据操作

1.数组间的合并与分割操作

# 合并以及分割
# 假设具有这样一段数据,三家店的营业额
marks = [[110, 115, 112],[108, 109, 100],[119, 120, 130]]# 以上存在这样的数据(这是三家店三天的营业额),现在需要添加剩余两天的数据(也就是显示一周的数据)
two_days_marks = [[100, 120],[115, 100],[100, 110]]# 现在显示三家店五天的营业额
import numpy as np# 使用hstack合并,为水平方向的合并操作
five_days_marks = np.hstack([marks, two_days_marks])
print(five_days_marks)
print()
# 现在又开了两家店 需要数据5家店五天的营业额
two_marks = [[100, 101, 102, 103, 104],[105, 106, 107, 108, 109]]five_marks = np.vstack([five_days_marks, two_marks])
print(five_marks)
# 使用vstack合并,为垂直方向的合并# 输出总和
five_matrix = np.matrix(five_marks)
s = np.matrix([[1], [1], [1], [1], [1]])
print(five_matrix * s)# 使用 当前的concatenate合并
a = [[1, 2, 3],[4, 5, 6]
]
b = [[7, 8, 9]]
c = [[4, 5, 6], [7, 8, 9]]
result = np.concatenate([a, b], axis=0)  # 0表示y轴的合并
print(result)
result = np.concatenate([a, c], axis=1)  # 1 表示x轴的合并
print(result)print("开始执行分割数据的操作")
# 使用分割
np_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
print(np.split(np_array, 3))  # 发现按照3等分进行分割,分成了三组数据
# print(np.split(np_array,6)) # 数组拆分不会导致等分,说明这个分割就是等分的分割操作,如果不能分割成相同的等分就会报错print(np.split(np_array, [2, 4, 6, 8])) # 按照指定的下标的方式分割当前的数据

结果:

总结:

1.在使用当前合并操作的时候需要指定是水平方向还是垂直方向的合并

2.使用np.hstack()实现水平方向的合并,使用np.vstack()方法实现垂直方向的合并,还可以使用np.concatenate()方法并指定axis方式合并

3.分割数组使用np.split方法,可以指定当前的参数,指定分割的段数,和按照当前的下标的方式进行分割

2.矩阵间的操作(乘法操作)

矩阵就是一个维度为2的数组,并且水平的数据都相同,就像一个矩形一样的数据

## 当前的矩阵间的操作
# 1. 矩阵间的乘法操作为(假设举证a=(2,3)表示当前的形状为2行3列的数据,b=(3,2)表示当前的形状为3行2列的数据),当前的乘法操作结果为:2,2两行两列的数据a = [[1, 2, 3], [4, 5, 6]]
b = [[1, 2],[3, 4],[5, 6]]
# 上述的数据中的数据就是一个(2,3)和(3,2),这两个矩阵相乘的结果为:2,2
# 现在开始矩阵间的乘法操作
# 1. 创建矩阵
import numpy as npa_matrix = np.matrix(a)
b_matrix = np.matrix(b)
c_result = a_matrix * b_matrix
print(c_result.shape)
print(c_result)
# 当前的结果为(2,2) [[22,28],[49,64]]
# 当前的运算为:[[1*1+2*3+3*5=22 ,1*2+2*4+3*6=28],[4*1+5*3+6*5=49,4*2+5*4+6*6=64]]
# 这个计算为a中的第一个数组中的每个数乘以对应的b中的每一行的和获得的数据就是结果中的第一个数组,a中的第二个数组中的每个数乘以b中每一列中的每一个数的和就是结果中的第二个数组# 假设存在这样一组数据,三家连锁店三天的营业额,其中第一个店的利润为总利润的50%,第二个店为20%,最后一个店为30%,求三天实际利润
marks = [[114, 112, 118],[105, 110, 120],[118, 119, 105]]# 分析,当前的marks中的数据为3,3这个形状,需要变成 3,1这种类型,所以需要将这个矩阵与形状3,1这个矩阵进行相乘
points = [[0.5],[0.2],[0.3]]# 开始计算
marks_matrix = np.matrix(marks)
points_matrix = np.matrix(points)
print("当前操作的结果为:{}".format(marks_matrix * points_matrix))
# 当前的操作正确

结果:

总结:

1.要实现当前矩阵间的乘法操做,需要将当前的矩阵使用np.matrix()方法将一个普通的二维数组转化成可以计算的矩阵才行

2.进行操作的时候需要遵守运算规则(a,b) * (b*c)=(a,c)这种模式,否则可能不能运算

3.使用numpy读取文件并操作数据

数据文件:datas.txt

# 使用numpy执行当前的文件读取操作
import numpy as np# 读取文件的操作使用np.genformtxt就是读取普通的txt的文本文件
read_np_array = np.genfromtxt("datas.txt", delimiter=",", dtype=np.int32)
print(read_np_array)
# 输出当前读取后的数据类型
print(read_np_array.dtype)  # 默认为 float64添加 dtype=np.int32后结果为int32# 输出当前的nparray中的形状
print("输出当前读取数据的类型:{}".format(read_np_array.shape))# 输出层数据的最大值
print(read_np_array.max())# 求出当前的的前两天的数据
print("输出5家店铺前两天的销售金额:{}".format(read_np_array[:5, :2]))
print("输出第三家店后三天的销售金额:{}".format(read_np_array[2, 2:]))print("输出当前每家店铺的5天中的销售最大值:{}".format(read_np_array.max(axis=1)))print("输出当前这五天中的每天的销售最大值:{}".format(read_np_array.max(axis=0)))print("输出销售金额大于115的销售金额:{}".format(read_np_array[read_np_array > 115]))print("输出当前的销售总额:{}".format(read_np_array.sum()))
# print("输出销售金额大于115的金额所在的索引:{}".format(np.))print("输出每家店的销售总额:{}".format(read_np_array.sum(axis=1)))print("输出第一天的销售总额:{}".format(read_np_array.sum(axis=0)[0]))# 使用矩阵乘法 (5,5) * (5,1) = (5,1)
data = [[0.2],[0.2],[0.2],[0.2],[0.2],
]
print(np.matrix(read_np_array) * np.matrix(data))

结果:

总结:

1.读取数据文件使用np.genfromtxt()方法从一个文本文件中读取数据,并指定分隔符delimiter,还可以指定dtype方式按照指定的类型读取(不指定默认为float64,如果是字符默认为nan)

4.总结

1.使用numpy对矩阵以及数组间的操作需要遵循规则,否则就会报错

2.numpy对同一类型的数据操作具有优势,如果类型不同就会出现问题

3.使用numpy可以很容易的读取并操作数据

以上纯属个人见解,如有问题请联系本人!

Python3:numpy的简单使用4(矩阵间的操作,合并数组,分割数组,读取文件操作)相关推荐

  1. Python 数据分析三剑客之 NumPy(六):矩阵 / 线性代数库与 IO 操作

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  2. 机器学习中的Numpy库基础——向量、矩阵和数组

    1.Numpy简介 Numpy是Python机器学习技术栈的基础. Numpy可以对机器学习中常用的数据结构--向量(vector).矩阵(matrice).张量(tensor)--进行高效的操作. ...

  3. [转载] python3 numpy函数_Python numpy总结(3)——常用函数用法

    参考链接: Python中的numpy.isreal 关于Python Numpy矩阵知识请参考博文:Python numpy学习(2)--矩阵的用法 1,np.ceil(x, y) 限制元素范围,进 ...

  4. python如何对两个矩阵进行拼接_Python:合并两个numpy矩阵的实现

    Python:合并两个numpy矩阵的实现 numpy是Python用来科学计算的一个非常重要的库,numpy主要用来处理一些矩阵对象,可以说numpy让Python有了Matlab的味道. 如何利用 ...

  5. 怎么在python中输入矩阵_如何使用NumPy在Python中实现矩阵?

    矩阵被用作数学工具,在现实世界中有多种用途.在本文中,我们将按照以下顺序讨论Python中关于使用著名的NumPy库的矩阵的所有内容:什么是NumPy以及何时使用它?在NumPy 矩阵被用作数学工具, ...

  6. NumPy实现简单的神经网络分析Mnist手写数字库(三)之划分迷你批(mini-batch)

    NumPy实现简单的神经网络分析Mnist手写数字库(三)之划分迷你批(mini-batch) 划分迷你批(mini-batch) 引言 迷你批(mini-batch)简介 经典梯度下降 随机梯度下降 ...

  7. python 多线程并行 矩阵乘法_python实现简单的并行矩阵乘法

    python实现简单的并行矩阵乘法 python实现简单的并行矩阵乘法 本文采用的矩阵乘法方式是利用一个矩阵的行和二个矩阵的列相乘时不会互相影响.假设A(m,n)表示矩阵的m行,n列.那么C(m,m) ...

  8. 技术图文:NumPy 的简单入门教程

    背景 这段时间,LSGO软件技术团队正在组织 "机器学习实战刻意练习"活动,这个活动是"Python基础刻意练习"活动的升级,是对学员们技术的更深层次的打磨.在 ...

  9. python把矩阵存为文件_python 读取文件并把矩阵转成numpy的两种方法

    在当前目录下: 方法1: file = open('filename') a =file.read() b =a.split('\n')#使用换行 len(b) #统计有多少行 for i in ra ...

最新文章

  1. Android studio 设置忽略文件
  2. python怎么发送代码文件_python 通过 socket 发送文件的实例代码
  3. 【深度学习】初识tensorflow之分布式训练
  4. 关于js中namespace命名空间模式
  5. webstrom中的快捷键
  6. ASP处理多关键词查询实例代码
  7. 费解 | 为什么很多程序员工作时都戴耳机?
  8. UVA10608 Friends【并查集】
  9. 词嵌入word2vec、字词嵌入fastText、全局词嵌入Glove直接的联系与关系
  10. Linux中svn提交文件后自动同步更新到网站目录
  11. 超级鹰平台识别boss验证码
  12. 视频配音怎么制作?这两个文字转语音工具,声音自然好听
  13. Python实现抽签(团日活动抽倒霉蛋
  14. 怎么让python一直执行_怎么才能让Python多进程不间断执行任务
  15. JAVA兴趣小组申请理由_关于参与兴趣小组申请书范文
  16. 香港十大炒黄金交易公司排名2020版一览
  17. LTspice基础教程-001.软件简介与安装
  18. arm架构 CF-WU810N网卡驱动安装经验
  19. 北京市政交通一卡通系统的应用情况研究
  20. 定位追踪器百科:宠物、老人、小孩、汽车通用的定位器

热门文章

  1. web前端大作业:旅游网页主题网站设计——武汉旅游网页设计(11页)HTML+CSS+JavaScript
  2. 计算机打印机共享失败,电脑共享打印连接错误怎么回事 电脑打印共享错误的解决方法...
  3. 使用python语言创建空列表score_使用NLP创建摘要
  4. 织梦dede:arclist关键词标签keyword动态获取变量
  5. π122M31 双通道数字隔离器 CAN通信隔离兼容ADuM7241ARZ
  6. 百度搜索资源平台上线,业内大佬送祝福!
  7. 不走寻常路的Logitech G120
  8. latex插入pdf后空很多行
  9. hr看php简历,HR:“有这样的简历,才值得一见!”
  10. 关于mac上输入 insert和replace的快捷键切换