python矩阵

矩阵乘法np.dot()及np.multiply()以及*

匿名 (未验证) 提交于 2019-12-02 22:51:30
np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵乘积,同线性代数中矩阵乘法的定义。对于一维矩阵,计算两者的内积。见如下Python代码: import numpy as np # 2-D array: 2 x 3 two_dim_matrix_one = np.array([[1, 2, 3], [4, 5, 6]]) # 2-D array: 3 x 2 two_dim_matrix_two = np.array([[1, 2], [3, 4], [5, 6]]) two_multi_res = np.dot(two_dim_matrix_one, two_dim_matrix_two) print('two_multi_res: %s' %(two_multi_res)) # 1-D array one_dim_vec_one = np.array([1, 2, 3]) one_dim_vec_two = np.array([4, 5, 6]) one_result_res = np.dot(one_dim_vec_one, one_dim_vec_two) print('one_result_res: %s' %(one_result_res)) 结果如下: two_multi_res: [[22 28] [49 64]] one_result_res: 32

python numpy模块

匿名 (未验证) 提交于 2019-12-02 22:51:30
Ŀ¼ 回顾一下有哪些数据类型 int/float/str/list/tuple/dict/set numpy是python一种开源的数值计算扩展库.这种库可用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效的多(该结构也可以用来表示矩阵) 作用: 1.区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型 2.计算速度快,甚至优于python内置的简单运算,使其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似 矩阵即numpy的np.array对象,创建矩阵就是把==列表==传入np.array() import numpy as np 只有一行 相当于一条直线 lis =[1,2,3] lis [1, 2, 3] np.array(lis) array([1, 2, 3]) 有行有列 相当于一个面,里面有多条线,一个列表里装了多个一维 arr = np.array([ [1,2,3,4], [5,6,7,8] ]) arr #在pycharm中需要print(arr) array([[1, 2, 3, 4], [5, 6, 7, 8]]) 学习numpy的方法使用,先来联想一下list的内置方法使用 1.索引 2.切片 3.长度 4.成员运算 5.for循环 6

学习python的第二十二天(numpy模块(对矩阵的处理,ndarray对象)

匿名 (未验证) 提交于 2019-12-02 22:51:30
import numpy as np 约定俗称要把他变成np https://docs.scipy.org/doc/numpy/reference/?v=20190307135750 1.np.array import numpy as np #创建一维的ndarray对象 arr = np.array([1, 2, 3]) print(arr) #[1 2 3] #创建二维的ndarray对象 arr = np.array([[1, 2, 3], [4,5,6]]) print(arr) ''' [[1 2 3] [4 5 6]] ''' #创建三维的ndarray对象 arr = np.array([[[1, 2, 3],[3,2,1]], [[4,5,6],[6,5,4]]]) print(arr) ''' [[[1 2 3] [3 2 1]] [[4 5 6] [6 5 4]]] ''' #我们可以这样理解.其实内这个可以相当于几何里面的,点,线,面,里面各个元素相当一个点,一个列表里面有几个元素相当于线也就是一维,然后列表里面套列表相当于线,以此类推 import numpy as np arr = np.array([[1, 2, 3], [4,5,6]]) print(arr.shape) #(2, 3) # (矩阵的行数,矩阵的列数) import numpy as

使用数组进行面向数组编程

烈酒焚心 提交于 2019-12-02 20:15:08
使用数组进行面向数组编程 使用 NumPy 数组可以使你利用简单的数组表达式完成多种数据操作人物,而无需写大量的循环,这种利用数组表达式来代替显式循环的方法,称为 向量化 。 通常,向量化的数组操作会比纯Python的等价实现在速度上快一到两个数量级,甚至更多。 meshgrid 函数 一句话解释 numpy.meshgrid() ——生成 网格点坐标矩阵 。 关键词: 网格点 , 坐标矩阵 网格点 是什么? 坐标矩阵 又是什么鬼? 看个图就明白了: 图中,每个交叉点都是 网格点 ,描述这些 网格点 的坐标的矩阵,就是 坐标矩阵 。 再看个简单例子 A,B,C,D,E,F是6个网格点,坐标如图,如何用矩阵形式( 坐标矩阵 )来批量描述这些点的坐标呢? 答案如下: X = [$$ {} \begin{matrix} 0 & 1 & 2\ 0 & 1 & 2\ \end{matrix} $$] Y = [$$ {} \begin{matrix} 1 & 1 & 1\ 0 & 0 & 0\ \end{matrix} $$] 这就是坐标矩阵——横坐标矩阵X XX中的每个元素,与纵坐标矩阵Y YY中对应位置元素,共同构成一个点的完整坐标。如B点坐标( X(1,2), Y(1,2) ) = (1,1) 下面可以自己用matplotlib来试一试,输出就是上边的图 import numpy as

Python 矩阵(线性代数)

╄→尐↘猪︶ㄣ 提交于 2019-12-02 04:56:44
Python 矩阵(线性代数) 这里有一份新手友好的 线性代数笔记 ,是和深度学习 花书 配套,还被Ian Goodfellow老师翻了牌。 笔记来自巴黎高等师范学院的博士生Hadrien Jean,是针对“花书”的 线性代数 一章,初来乍到的小伙伴可以在笔记的辅佐之下,了解深度学习最常用的数学理论,加以轻松的支配。 把 理论 和 代码 搭配食用,疗效更好。笔记里列举的各种 例子 ,可以帮初学者用一种更直观实用的方式学好线代。开始前,你需要准备好 Numpy 和 Python 。 然后来看一下,要走怎样一个疗程—— 1 标量、向量、矩阵和张量 △ 标量,向量,矩阵,张量 (左起) 这一课讲了向量和矩阵,以及它们的一些基础运算。另外,这里介绍了 Numpy 的一些相关 函数 ,也浅浅地谈到了 Broadcasting 机制。 2 矩阵和向量的乘法 △ 矩阵与向量的点乘 本小节主要讨论的是, 向量和矩阵的点积 ,我们可以从中了解矩阵的一些属性。之后,便是用矩阵符号来创建一个 线性方程组 ——这也是日后的学习里,经常要做的事情。 3 单位矩阵和逆矩阵 △ 单位矩阵长这样 我们要了解这两种矩阵 为什么重要 ,然后知道怎样在Numpy里和它们玩耍。另外,本小节包含用 逆矩阵求解线性方程组 的一个例题。 4 线性依赖与线性生成空间 线性方程组,除非 无解 ,不然要么有 唯一解 ,要么有

numpy学习总结

余生颓废 提交于 2019-12-01 20:21:49
numpy用法 导入: import numpy as np 生成矩阵: array = np.array([[1,2,3],[4,5,6]]) 矩阵维度: array.ndim 矩阵形状: array.shape 矩阵大小: array.size 矩阵元素类型: array.dtype 创建array a = np.array([1,2,3], dtype=np.int32) dtype:指定数据类型 矩阵维度:创建时方括号的层数代表矩阵的维度 常用用法 zero = np.zeros((2, 3)) 生成两行三列全为0的矩阵 one = np.empty((2, 3)) 生成两行三列全为1的矩阵 empty = np.empty((3, 2)) 生成三行两列全为接近于0但不是0的矩阵 e = np.arange(10) 此种用法与python中的range类似 h = np.arange(10).reshape(2, 4) 重新定义矩阵的形状 矩阵操作(要求:两个矩阵形状相同) arr1:矩阵1 arr2:矩阵2 加法:arr1 + arr2 按位相加 减法:arr1 - arr2 按位相减 乘法:arr1 * arr2 按位相乘 求幂:arr1 ** arr2 ****按位操作**** 除法:arr1 / arr2 按位相除 取余:arr1 % arr2 按位取余 取整

numpy学习

南楼画角 提交于 2019-12-01 08:37:37
NumPy是Python的一种开源的数值计算库。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。 1.导入numpy,创建矩阵,查看维数,形状,大小 2.numpy的创建 创建3行4列0矩阵 3行4列全1矩阵 类似range,生成,并且reshape 从1到10生成5个线段 3.numpy基础运算 array相减 平方 三角函数 判断数大小 矩阵运算 定义矩阵 矩阵乘法 创建随机数,并求元素和,最大元素,最小元素 索引 平均值 中位数 前n位累加(n=1,2,……) 每一行的累差 排序(每行) 非0值 矩阵转置 clip 4.numpy索引 for循环输出每一行 (列) 循环输出每一项 5.numpy合并 合并1 数列加维度 合并2 合并3 6.numpy分割 相等分割 不等分割 分割2 7.numpy深浅拷贝 直接=是浅拷贝 深拷贝 来源: https://www.cnblogs.com/sclu/p/11663901.html

Python利用PIL将数值矩阵转化为图像

时光怂恿深爱的人放手 提交于 2019-11-30 22:52:03
要求:输入一个n*n的矩阵,矩阵包括从-1到1的浮点数,将其转化为可视化图像 调库 from PIL import Image import numpy as np import math 载入图像,并使用np.array()转化为矩阵 Image.new()第一个参数是模式,第二个是尺寸,第三个参数如果不填默认是黑色,填3个255就是白色. img = Image.new('RGB', (256, 256), (255, 255, 255)) matrix=np.array(img) matrix 输出 array([[[255, 255, 255], [255, 255, 255], [255, 255, 255], ..., [255, 255, 255], [255, 255, 255], [255, 255, 255]], [[255, 255, 255], [255, 255, 255], [255, 255, 255], ..., [255, 255, 255], [255, 255, 255], [255, 255, 255]], [[255, 255, 255], [255, 255, 255], [255, 255, 255], ..., [255, 255, 255], [255, 255, 255], [255, 255, 255]], ..., [[255

some code about numpy

烂漫一生 提交于 2019-11-30 22:23:11
import numpy as np np.__version__ #版本 #由于python的list不要求存储同样的类型,但是效率不高。 L = [i for i in range(10)] L[5] = "Asuka" #而调用array的效率相比更好,但是它没有将数据当做向量或者矩阵,不支持基本运算,会报错。 #建议用numpy中的array nparr = np.array([i for i in range(10)]) nparr[5] = 100.0 #整数可以换成浮点型 nparr.dtype #数据类型 np.zeros(10) #0向量 np.zeros(10, dtype=float) np.zeros((3, 5)) #0矩阵 np.zeros(shape=(3, 5), dtype=int) np.ones(10) #单位向量 np.ones((3, 5)) #单位矩阵 np.full((3, 5), 666) #填充666 np.full(fill_value=666, shape=(3, 5)) np.arange(0, 20, 2) # 2为step,而且与range相比,是可以用小数的 np.arange(0,10,1.5) np.linspace(0, 20, 11) #等分 np.random.randint(0, 10) #0

《python数据分析和数据挖掘》——数据预处理

心不动则不痛 提交于 2019-11-30 18:25:18
此文为《python数据分析和数据挖掘》的读书笔记 通俗讲,经过我们前期的数据分析,得到了数据的缺陷,那么我们现在要做的就是去对数据进行预处理,可包括四个部分:数据清洗、数据集成、数据变换、数据规约。 处理过程如图所示: 1、数据清洗 1) 缺失值处理: 删除记录、数据插补、不处理。不处理吧总感觉不自在,删除了吧数据又有点舍不得,所以一般插补方法用的比较多,该文重点介绍Lagrange插补法和牛顿插补法,并介绍代码。 偷点懒他的详细过程我截图好了。 a 拉格朗日插补法 b 牛顿插补法 但是由于python中的Scipy库中提供了Lagrange插值法的函数,实现上更为容易,应用较多。而牛顿插值法则需要根据自行编写。需要指出两者给出的结果是相同的(相同次数、相同系数的多项式),不过表现的形式不同而已。 二话不说贴上亲测的python代码: import pandas as pd from scipy.interpolate import lagrange#导入拉格朗日函数 import sys sys.__stdout__=sys.stdout inputfile='catering_sale.xls'#销售数据途径 outputfile='tmp/sales.xls'#输出数据途径 data=pd.read_excel(inputfile,Index_col=u'日期')#读入数据