博客
关于我
Python机器学习(五十二)SciPy 基础功能
阅读量:565 次
发布时间:2019-03-11

本文共 2035 字,大约阅读时间需要 6 分钟。

默认情况下,所有NumPy函数都可以在SciPy(命名空间)中使用。当导入SciPy时,不需要显式地导入NumPy函数。NumPy的主要对象是n次多维数组,SciPy构建在ndarray数组之上,ndarray是存储单一数据类型的多维数组。在NumPy中,维度称为轴,坐标轴的数量称为秩。

通常线性代数主要处理矩阵运算,现在,让我们复习一下NumPy中向量/数组和矩阵的基本功能。

NumPy ndarray数组

ndarray是NumPy中最重要的类。

标准的Python列表(list)中,元素是对象。如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算比较浪费资源。

与此不同,ndarray中元素直接存储为原始数据,元素的类型由ndarray对象中的属性dtype描述。

当ndarray数组中的元素,通过索引或切片返回时,会根据dtype,从原始数据转换成Python对象,以便外部使用。

示例

将Python类数组对象转换为NumPy数组

import numpy as nplist = [1,2,3,4]arr = np.array(list)print (arr)print (type(arr))

输出

[1 2 3 4]

创建NumPy数组

NumPy中,可以使用下面介绍的内置函数创建ndarrray数组。

zeros()

zeros()函数创建数组,并且把数组元素的值初始化为0,可以指定数组形状和数据类型。

示例

import numpy as npprint (np.zeros((2, 3)))

输出

[[0. 0. 0.] [0. 0. 0.]]

ones()

ones()函数创建数组,并且把数组元素的值初始化为1,可以指定数组形状和数据类型。

示例

import numpy as npprint (np.ones((2, 3)))

输出

[[1. 1. 1.] [1. 1. 1.]]

arange()

arange()函数创建递增数组。

示例

import numpy as npprint (np.arange(7))

输出

[0 1 2 3 4 5 6]

数组的数据类型

,是描述数组中元素数据类型的对象。

示例

import numpy as nparr = np.arange(2, 10, dtype = np.float)print (arr)print ("数组数据类型 :", arr.dtype)

输出

[ 2. 3. 4. 5. 6. 7. 8. 9.]数组数据类型 : float64

linspace()

linspace()函数创建一个数组,该数组包含指定区间内均匀分布的值。

示例

import numpy as npprint (np.linspace(1., 4., 6))

输出

[1.  1.6 2.2 2.8 3.4 4. ]

矩阵

是一种特殊的二维数组,它有一些特殊的运算符,如*(矩阵乘法)和**(矩阵幂)。

示例

import numpy as npprint (np.matrix('1 2; 3 4'))

输出

[[1 2] [3 4]]

矩阵转置

将矩阵的行列互换得到的新矩阵,称为转置矩阵。

示例

import numpy as npmat = np.matrix('1 2; 3 4')mat.T

输出

matrix([[1, 3],        [2, 4]])

矩阵的共轭转置

共轭就是矩阵每个元素都取共轭(复数的实部不变,虚部取负)。

共轭转置就是先取共轭,再取转置。

示例

import numpy as npmat = np.matrix('1 2; 3 4')print (mat.H)

输出

matrix([[1, 3],        [2, 4]])

单位矩阵

单位矩阵在矩阵的乘法中,起着特殊的作用,如同数的乘法中的1。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1,除此以外全都为0。

示例

创建单位矩阵:

import numpy.matlib import numpy as np print (np.matlib.identity(5))

输出

[[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 0. 1.]]

逆矩阵

逆矩阵的数学定义:存在矩阵M以及矩阵N,假如M*N = 矩阵I(Identify Matrix单位矩阵),那么矩阵M和矩阵N互为逆矩阵。

示例

求一个矩阵的逆矩阵:

import numpy as npmat = np.matrix('1 2; 3 4')mat2 = mat.Iprint(mat2)

输出

[[-2.   1. ] [ 1.5 -0.5]]

转载地址:http://tpivz.baihongyu.com/

你可能感兴趣的文章
es6 引用数组,数组发生改变 (es6 引用类型的数据引用的时候怎么不改变原始数据)
查看>>
后端返回图片地址,图片不显示的问题
查看>>
spring-day01
查看>>
spring的值注入与组件扫描
查看>>
【leetcode】349. 两个数组的交集(intersection-of-two-arrays)(哈希)[简单]
查看>>
C#跨窗体程序调用方法的具体操作
查看>>
C#中创建Android项目
查看>>
C#使用OpenCV(OpenCVSharp)
查看>>
统计学之变异系数与是非标志
查看>>
统计学之偏度系数和峰度系数
查看>>
力扣数据库:删除重复的电子邮箱
查看>>
leetcode 102 剑指Offer 32 二叉树的层次遍历
查看>>
关于继承的一些基本知识
查看>>
如何批量下载新浪微博相册,一键下载微博相册原图
查看>>
抖音发布黄金时间段,抖音上热门最佳时间
查看>>
小米有品的手机详情图怎么保存,如何把小米有品商品详情图保存
查看>>
我的图床~
查看>>
MySQL 实战 45 讲笔记 | 事务隔离和 MVCC
查看>>
自学C++编程,掌握这三项技能就可以工作了
查看>>
HTTP 常见状态码
查看>>