随着机器学习技术越来越向着整个社会进行推广,因此学好线性代数和Python当中的numpy库就相当重要了。我们应该知道numpy库的使用是sklearn库和opencv库的基础。主要用于矩阵的计算。当然,我们做做数模或者人工神经网络建模也可以使用MATLAB。不过现在Python才是现在的主流,因为Python可以用于服务器后台的实现,不仅仅看可以用于科研,还可以做出一些比较实用的一些东西。如果还想用于物联网等领域的话,则可以使用C++进行算法的实现。因为我们在嵌入式开发当中,一般使用的是linux系统进行嵌入式开发。而在嵌入式linux系统当中的话,使用C++进行代码的实现占用系统资源较少,在物联网硬件资源有限的条件下,可以跑出极为高效的程序。如实现摄像头人脸识别检测,人体检测,指纹识别等十分神奇的人工智能识别功能。

首先开始第一部分的教程

一,数组的实现
@requires_authorization

>>> 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

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]]"

二,矩阵
#创建矩阵

>>> 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()
>>>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]])

差不多也就这样了,如果学完numpy库的使用,那您运用计算机进行矩阵的计算能力一定会大大提升的。

NumPy库实现矩阵计算的更多相关文章

  1. 安装numpy库

    1.先安装pip: 下载地址:http://pypi.python.org/pypi/pip#downloads 下载pip-8.1.2.tar.gz(md5,pgp)完成之后,解压到一个文件夹,cm ...

  2. Python的numpy库下的几个小函数的用法

    numpy库是Python进行数据分析和矩阵运算的一个非常重要的库,可以说numpy让Python有了matlab的味道 本文主要介绍几个numpy库下的小函数. 1.mat函数 mat函数可以将目标 ...

  3. numpy库:常用基本

    numpy 本文主要列出numpy模块常用方法 大部分内容来源于网络,而后经过自己的一点思考和总结,如果有侵权,请联系我 我是一名初学者,有哪些地方有错误请留言,我会及时更改的 创建矩阵(采用ndar ...

  4. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

  5. 数据分析与展示——NumPy库入门

    这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组 ...

  6. 初识NumPy库-基本操作

    ndarray(N-dimensional array)对象是整个numpy库的基础. 它有以下特点: 同质:数组元素的类型和大小相同 定量:数组元素数量是确定的 一.创建简单的数组: np.arra ...

  7. numpy库常用基本操作

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  8. Numpy库(个人学习笔记)

    一样,咱的计算机还是得先拥有Python,并且安装了Numpy库.有疑问的话可以看这里呦~~~~ 下面开讲: NumPy的主要对象是齐次多维数组.它是一个元素表(通常是数字),并且都是相同类型,由正整 ...

  9. Numpy库的下载及安装(吐血总结)

    Python很火,我也下了个来耍耍一阵子.可是渐渐地,我已经不满足于它的基本库了,我把目光转到了Numpy~~~~~ 然而想法总是比现实容易,因为我之前下的是Python3.3.x,所有没有自带pip ...

随机推荐

  1. axios 拦截器统一在接口增加时间戳参数,防止走缓存。

    request.interceptors.request.use( config => { if (config.method == 'post') { config.data = { ...c ...

  2. python2使用eval 让除法可以保留小数

    使用的Python版本2.7, 我在使用eval('1/3')发现一个问题,结果都是去掉小数,保留了整数.但是我需要保留小数,各种查资料,最后在一大神指点下,成功解决这个问题,解决办法是: 加载模块: ...

  3. 02-再探MySQL数据库

    一.数据类型 1.数值类型 a.整数类型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等. =============== ...

  4. WebStorm远程调试Node.js

    1.服务启动IP及端口,如果是云服务,IP选用服务器内网IP.同时需要防火墙需要添加端口. #添加端口 $ firewall-cmd --zone=public --add-port=9229/tcp ...

  5. 使用Python批量下载Plus上的Podcast

    Plus是一个介绍数学之美与实际应用的网络杂志,其中包含了数学知识.轶闻趣事.历史典故等许多精彩的内容.该杂志恰好有一个Podcast栏目,提供了不少采访与讲座的mp3音频.于是, 我使用Python ...

  6. javascript中的浅拷贝ShallowCopy与深拷贝DeepCopy

    拷贝,在js中,分为浅拷贝和深拷贝.这两者是如何区分的呢?又是如何实现的呢? 深浅拷贝的区分 首先说下,在js中,分为基础数据类型和复杂数据类型, 基础数据类型:Undefined.Null.Bool ...

  7. 使用python将数据写入excel

    先来个简单的例子: #!/usr/bin/python #coding=utf-8 # ======================================================== ...

  8. ES6躬行记(15)——箭头函数和尾调用优化

    一.箭头函数 箭头函数(Arrow Function)是ES6提供的一个很实用的新功能,与普通函数相比,不但在语法上更为简洁,而且在使用时也有更多注意点,下面列出了其中的三点: (1)由于不能作为构造 ...

  9. 基本排序算法(Java)

    基本排序算法 (Java) 经过几次笔试,发现自己的Java基础有些薄弱,基本的排序算法掌握的还不够熟练,需要多加学习总结. 1. 选择排序 思想: 给定一个整数数组,例 int[] a ={38,6 ...

  10. Stream闪亮登场

    Stream闪亮登场 一. Stream(流)是什么,干什么 Stream是一类用于替代对集合操作的工具类+Lambda式编程,他可以替代现有的遍历.过滤.求和.求最值.排序.转换等 二. Strea ...