Python中矩阵库Numpy基本操作详解
作者:yqtaowhu 发布时间:2021-07-09 18:13:05
标签:Python,矩阵库,Numpy
NumPy是一个关于矩阵运算的库,熟悉Matlab的都应该清楚,这个库就是让python能够进行矩阵话的操作,而不用去写循环操作。
下面对numpy中的操作进行总结。
numpy包含两种基本的数据类型:数组和矩阵。
数组(Arrays)
>>> from numpy import *
>>> a1=array([1,1,1]) #定义一个数组
>>> a2=array([2,2,2])
>>> a1+a2 #对于元素相加
array([3, 3, 3])
>>> a1*2 #乘一个数
array([2, 2, 2])
##
>>> a1=array([1,2,3])
>>> a1
array([1, 2, 3])
>>> a1**3 #表示对数组中的每个数做平方
array([ 1, 8, 27])
##取值,注意的是它是以0为开始坐标,不matlab不同
>>> a1[1]
2
##定义多维数组
>>> a3=array([[1,2,3],[4,5,6]])
>>> a3
array([[1, 2, 3],
[4, 5, 6]])
>>> a3[0] #取出第一行的数据
array([1, 2, 3])
>>> a3[0,0] #第一行第一个数据
1
>>> a3[0][0] #也可用这种方式
1
##数组点乘,相当于matlab点乘操作
>>> a1=array([1,2,3])
>>> a2=array([4,5,6])
>>> a1*a2
array([ 4, 10, 18])
Numpy有许多的创建数组的函数:
import numpy as np
a = np.zeros((2,2)) # Create an array of all zeros
print a # Prints "[[ 0. 0.]
# [ 0. 0.]]"
b = np.ones((1,2)) # Create an array of all ones
print b # Prints "[[ 1. 1.]]"
c = np.full((2,2), 7) # Create a constant array
print c # Prints "[[ 7. 7.]
# [ 7. 7.]]"
d = np.eye(2) # Create a 2x2 identity matrix
print d # Prints "[[ 1. 0.]
# [ 0. 1.]]"
e = np.random.random((2,2)) # Create an array filled with random values
print e # Might print "[[ 0.91940167 0.08143941]
# [ 0.68744134 0.87236687]]"
数组索引(Array indexing)
矩阵
矩阵的操作与Matlab语言有很多的相关性。
#创建矩阵
>>> m=mat([1,2,3])
>>> m
matrix([[1, 2, 3]])
#取值
>>> m[0] #取一行
matrix([[1, 2, 3]])
>>> m[0,1] #第一行,第2个数据
2
>>> m[0][1] #注意不能像数组那样取值了
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 305, in __getitem__
out = N.ndarray.__getitem__(self, index)
IndexError: index 1 is out of bounds for axis 0 with size 1
#将Python的列表转换成NumPy的矩阵
>>> list=[1,2,3]
>>> mat(list)
matrix([[1, 2, 3]])
#矩阵相乘
>>> m1=mat([1,2,3]) #1行3列
>>> m2=mat([4,5,6])
>>> m1*m2.T #注意左列与右行相等 m2.T为转置操作
matrix([[32]])
>>> multiply(m1,m2) #执行点乘操作,要使用函数,特别注意
matrix([[ 4, 10, 18]])
#排序
>>> m=mat([[2,5,1],[4,6,2]]) #创建2行3列矩阵
>>> m
matrix([[2, 5, 1],
[4, 6, 2]])
>>> m.sort() #对每一行进行排序
>>> m
matrix([[1, 2, 5],
[2, 4, 6]])
>>> m.shape #获得矩阵的行列数
(2, 3)
>>> m.shape[0] #获得矩阵的行数
2
>>> m.shape[1] #获得矩阵的列数
3
#索引取值
>>> m[1,:] #取得第一行的所有元素
matrix([[2, 4, 6]])
>>> m[1,0:1] #第一行第0个元素,注意左闭右开
matrix([[2]])
>>> m[1,0:3]
matrix([[2, 4, 6]])
>>> m[1,0:2]
matrix([[2, 4]])
扩展矩阵函数tile()
例如,要计算[0,0,0]到一个多维矩阵中每个点的距离,则要将[0,0,0]进行扩展。
tile(inX, (i,j)) ;i是扩展个数,j是扩展长度
实例如下:
>>>x=mat([0,0,0])
>>> x
matrix([[0, 0, 0]])
>>> tile(x,(3,1)) #即将x扩展3个,j=1,表示其列数不变
matrix([[0, 0, 0],
[0, 0, 0],
[0, 0, 0]])
>>> tile(x,(2,2)) #x扩展2次,j=2,横向扩展
matrix([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0]])
来源:http://blog.csdn.net/taoyanqi8932/article/details/52703686


猜你喜欢
- tags: django中对条件查询一些cms项目都会使用到多条件查询,我们后端如何处理请求的条件呢?满足一个条件满足两个条件满足多个条件…
- python-opencv 中值滤波{cv2.medianBlur(src, ksize)}中值滤波将图像的每个像素用邻域 (以当前像素为中
- 第一:编写限制搜索范围的查询语句。众所周知,在数据库查询的时候返回记录的多少直接关系到查询的效率。所以,在客户端通过一定的条件语句,限制搜索
- 详解Python 模拟实现生产者消费者模式的实例散仙使用python3.4模拟实现的一个生产者与消费者的例子,用到的知识有线程,队列,循环等
- 本文实例为大家分享了python opencv摄像头应用的具体代码,供大家参考,具体内容如下1、安装下载安装包pip install ope
- 先看javascript的普通函数用法 function sum(a,b){ var c = 10; function add(){ c++
- 持续更新一些常用的Tensor操作,比如List,Numpy,Tensor之间的转换,Tensor的拼接,维度的变换等操作。其它Tensor
- 对于在外的游子,每逢佳节倍思亲。而对于996ICU的苦逼程序猿们,最期待的莫过于各种节假日能把自己丢在床上好好休息一下了。这几天各公司都陆续
- go简单代码反汇编用简单的代码用以分析go的调用约定及多返回值的返回方式。package mainfunc vals(c, d int) (
- 前言网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其
- swagger介绍Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开源软件工具
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 19 - TooltipsMootools 1.2
- 之前使用beego的http库的时候,有的情况需要下载文件。beego是能实现,但就是有点问题:不支持回调,没法显示下载速度,这在日常开发中
- 实战场景Python 工程师在日常的工作中,经常会碰到解析和处理PDF文件的情况,实战中需求主要分为如下情况:提取 PDF 中的文字将 PD
- 1.python中列表list的拷贝,会有什么需要注意的呢? python变量名相当于标签名。list2=list1 ,直接赋值,实质上指向
- 实例一--爬取页面import requestsurl="https//itemjd.com/2646846.html"
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️ 概述模板概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- 在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别。后者是在前者的基础上进一步完善。在本章中,我们使用HOG算法,HOG和SIF
- python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without an
- MybatisPlus 是一款在 Mybatis 基础上进行的增强 orm 框架,可以实现不写 sql 就完成数据库相关的操作。普通的 ma