NumPy学习12
今天学习了
22, NumPy矩阵乘法
23, NumPy IO操作
numpy_test12.py :
import numpy as np '''
22, NumPy矩阵乘法
矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵。
注意:必须确保第一个矩阵中的行数等于第二个矩阵中的列数,否则不能进行矩阵乘法运算。 矩阵乘法运算被称为向量化操作,向量化的主要目的是减少使用的 for 循环次数或者根本不使用。
这样做的目的是为了加速程序的计算。
'''
print("----22, NumPy矩阵乘法----") '''
(1) np.multiply()
multiple() 函数用于两个矩阵的逐元素乘法.
'''
print("----(1) np.multiply()----")
arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], ndmin=3)
print('arr1 : ', arr1)
arr2 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]], ndmin=3)
print('arr2 : ', arr2)
# 两个矩阵的逐元素乘法
result = np.multiply(arr1,arr2)
print('result : ', result)
'''
arr1 : [[[1 2 3]
[4 5 6]
[7 8 9]]]
arr2 : [[[9 8 7]
[6 5 4]
[3 2 1]]]
result : [[ [ 9 16 21]
[24 25 24]
[21 16 9]]]
''' '''
(2) np.matmul()
matmul() 用于计算两个数组的矩阵乘积。
'''
print("----(2) np.matmul()----")
arr3 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], ndmin=3)
print('arr3 : ', arr3)
arr4 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]], ndmin=3)
print('arr4 : ', arr4)
# 两个数组的矩阵乘积
result = np.matmul(arr3,arr4)
print('result : ', result)
'''
arr3 : [[[1 2 3]
[4 5 6]
[7 8 9]]]
arr4 : [[[9 8 7]
[6 5 4]
[3 2 1]]]
result : [[ [ 30 24 18]
[ 84 69 54]
[138 114 90]]]
''' '''
(3) np.dot()
dot() 函数用于计算两个矩阵的点积。
'''
print("----(3) np.dot()----")
arr5 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9],], ndmin=3)
print('arr5 : ', arr5)
arr6 = np.array([[9, 8, 7], [6, 5, 4], [3, 2, 1]], ndmin=3)
print('arr6 : ', arr6)
# 两个矩阵的点积
result = np.dot(arr5, arr6)
print('result : ', result)
'''
arr5 : [[[1 2 3]
[4 5 6]
[7 8 9]]]
arr6 : [[[9 8 7]
[6 5 4]
[3 2 1]]]
result : [[ [[ 30 24 18]] [[ 84 69 54]] [[138 114 90]]
]]
''' '''
23, NumPy IO操作
NumPy IO 操作是以文件的形式从磁盘中加载 ndarray 对象。
在这个过程中,NumPy 可以两种文件类型处理 ndarray 对象,一类是二进制文件(以.npy结尾),另一类是普通文本文件。 上述两种文件格式,分别对应着不同的 IO 方法,如下所示: NumPy IO操作方法
文件类型 处理方法
二进制文件 load() 和 save()
普通文本文件 loadtxt() 和 savetxt()
我们知道,文件会被保存在不同的计算机上(比如 Linux、Windows、MacOSX 等)。
为了不受的计算机架构影响,NumPy 开发团队给 ndarray 对象引入了一种.npy文件格式,
通过它来件实现对 ndarray 对象的保存。
'''
print("----23, NumPy IO操作----")
'''
(1) numpy.save()
numpy.save() 方法将输入数组存储在.npy文件中。
numpy.save(file, arr, allow_pickle=True, fix_imports=True) 参数说明:
file:保存后的文件名称,其文件类型为.npy;
arr:要保存的数组
allow_pickle:可选项,布尔值参数,允许使用 pickle 序列化保存数组对象。
fix_imports:可选项,为了便于在 Pyhton2 版本中读取 Python3 保存的数据。
'''
print("----(1) numpy.save()----")
arr7 = np.array([1, 2, 3, 4, 5])
print('arr7 : ', arr7)
# 输入数组存储在.npy文件中
np.save('outfile', arr7)
print('输入数组存储在outfile.npy文件中')
# 使用 load() 从 outfile.npy 文件中加载数据
arr8 = np.load('outfile.npy')
print('从 outfile.npy 文件中加载数据')
print('arr8 : ', arr8)
'''
arr7 : [1 2 3 4 5]
输入数组存储在outfile.npy文件中
从 outfile.npy 文件中加载数据
arr8 : [1 2 3 4 5]
''' '''
(2) savetxt()
savetxt() 和 loadtxt() 分别表示以文本格式存储数据或加载数据。其中 savetxt() 的语法格式如下:
np.savetxt('filename文件路径', self.task, fmt="%d", delimiter=" ") 参数说明:
filename:表示保存文件的路径;
self.task: 要保存数组的变量名;
fmt="%d": 指定保存文件的格式,默认是十进制;
delimiter=" "表示分隔符,默认以空格的形式隔开。
'''
print("----(2) savetxt()----")
arr9 = np.array([1,2,3,4,5])
print('arr9 : ', arr9)
np.savetxt('outfile.txt', arr9)
print('输入数组存储在outfile.txt 文本文件中')
#使用loadtxt重载数据
arr10 = np.loadtxt('outfile.txt')
print('从 outfile.txt 文本文件中加载数据')
print('arr10 : ', arr10)
'''
arr9 : [1 2 3 4 5]
输入数组存储在outfile.txt 文本文件中
从 outfile.txt 文本文件中加载数据
arr10 : [1. 2. 3. 4. 5.]
'''
NumPy学习12的更多相关文章
- 数据分析之Pandas和Numpy学习笔记(持续更新)<1>
pandas and numpy notebook 最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...
- NumPy学习(索引和切片,合并,分割,copy与deep copy)
NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...
- NumPy学习(让数据处理变简单)
NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...
- numpy 学习笔记
numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...
- numpy 学习总结
numpy 学习总结 作者:csj更新时间:01.09 email:59888745@qq.com 说明:因内容较多,会不断更新 xxx学习总结: 回主目录:2017 年学习记录和总结 #生成数组/使 ...
- (转)Python数据分析之numpy学习
原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...
- Numpy学习1
NumPy学习(1) 参考资料: http://www.cnblogs.com/zhanghaohong/p/4854858.html http://linusp.github.io/2016/02/ ...
- Numpy学习笔记(下篇)
目录 Numpy学习笔记(下篇) 一.Numpy数组的合并与分割操作 1.合并操作 2.分割操作 二.Numpy中的矩阵运算 1.Universal Function 2.矩阵运算 3.向量和矩阵运算 ...
- Numpy学习笔记(上篇)
目录 Numpy学习笔记(上篇) 一.Jupyter Notebook的基本使用 二.Jpuyter Notebook的魔法命令 1.%run 2.%timeit & %%timeit 3.% ...
- 【大数据技术能力提升_2】numpy学习
numpy学习 标签(空格分隔): numpy python 数据类型 5种类型:布尔值(bool),整数(int),无符号整数(uint).浮点(float).复数(complex) 支持的原始类型 ...
随机推荐
- Qt编写安防视频监控系统45-图文报表
一.前言 图文报表对应以前的文字报表,以前的日志查询后,需要打印或者导出,都是一行行的文字记录,近期需要图文警情记录打印和导出,于是彻底趁机将之前的数据导入导出(xls/pdf)及打印组件彻底改造重写 ...
- Qt开源作品34-qwt无需插件源码
一.前言 QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目,可生成各种统计图.为具有技术专业背景的程序提供GUI组件和一组 ...
- [转]Windows10+VS2013+OpenCV3.0开发环境搭建配置
首先要说明一下:不管VS(Visual Studio)的版本是什么,也不管OpenCV的版本是什么,配置都大同小异.所以如果您希望在Window下配置OpenCV的开发环境,那么仔细阅读学习这篇文章即 ...
- Windows7下关闭和打开IPV6隧道
IPv6隧道是将IPv6报文封装在IPv4报文中,让IPv6数据包穿过IPv4网络进行通信.对于采用隧道技术的设备来说,在隧道的入口处,将IPv6的数据报封装进IPv4,IPv4报文的源地址和目的地址 ...
- linux-杂项
1.常用基础 防火墙systemctl status firewalldsystemctl stop firewalldsystemctl start firewalld find / -size + ...
- Flu PG walkthrough Intermediate
nmap ┌──(root㉿kali)-[/home/ftpuserr] └─# nmap -p- -A 192.168.192.41 Starting Nmap 7.94SVN ( https:// ...
- js脚本实现文本文件格式批量转换
问题: 在Windows环境下,从某些软件中导出的文本格式的数据,选择了默认的ANSI格式.双击打开数据文件后,一切正常,没乱码问题.但是为什么自己的代码里,先按照ANSI格式打开,在转换为UTF8, ...
- java中匿名类,Bean规范,全局变量
实现看见一个人,我们对它说hello public class study01 { public static void main(String[] args) { Me me = new Me(); ...
- 玩转云端 | 天翼云边缘安全加速平台AccessOne实用窍门之多款产品管理难?一站式平台管理全hold住!
随着数字化转型深入推进,企业信息化建设成效显著,同时其所面临的安全与性能挑战也日趋复杂,既要确保业务系统的安全性,同时也要提供快速.流畅的用户体验,以提升用户满意度和业务竞争力. 在传统的解决方案中, ...
- Presto-JDBC使用
一.简介 PrestoConnection并不能提供一个持久的Socket连接,而是创建一个OkHttpClient与Presto按照HTTP1.1协议进行通信,并且PrestoConnection仅 ...