默认情况下,所有NumPy函数都可以在SciPy(命名空间)中使用。当导入SciPy时,不需要显式地导入NumPy函数。NumPy的主要对象是n次多维数组ndarray,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 np
list = [1,2,3,4]
arr = np.array(list)
print (arr)
print (type(arr))

输出

[1 2 3 4]
<class 'numpy.ndarray'>

创建NumPy数组

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

zeros()

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

示例

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

输出

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

ones()

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

示例

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

输出

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

arange()

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

示例

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

输出

[0 1 2 3 4 5 6]

数组的数据类型

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

示例

import numpy as np
arr = 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 np
print (np.linspace(1., 4., 6))

输出

[1.  1.6 2.2 2.8 3.4 4. ]

矩阵

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

示例

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

输出

[[1 2]
[3 4]]

矩阵转置

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

示例

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

输出

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

矩阵的共轭转置

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

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

示例

import numpy as np
mat = 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 np
mat = np.matrix('1 2; 3 4')
mat2 = mat.I
print(mat2)

输出

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

SciPy 基础功能的更多相关文章

  1. 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.0,完善基础功能(源码)

    (前段时间封闭式开发完了一个项目,最近才有时间继续更新GG的后续版本,对那些关注GG的朋友来说,真的是很抱歉.)GG的前面几个版本开发了一些比较高级的功能,像视频聊天.远程桌面.文件传送.远程磁盘等, ...

  2. 谷歌Chrome浏览器开发者工具的基础功能

    上一篇我们学习了谷歌Chrome浏览器开发者工具的基础功能,下面介绍的是Chrome开发工具中最有用的面板Sources.Sources面板几乎是最常用到的Chrome功能面板,也是解决一般问题的主要 ...

  3. Netsharp快速入门(之16) Netsharp基础功能(权限管理)

    第5章     Netsharp基础功能 5.1     权限配置 5.1.1  功能权限 1.配置权限功能点,打开平台工具-基础业务-操作管理 2.选择资源节点为销售订单,点添加常用操作,添加完成后 ...

  4. 李洪强iOS开发之-环信03_集成 SDK 基础功能

    李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...

  5. wc基础功能

    第一次作业 项目地址 https://gitee.com/xxlznb/WordCount PSP WordCount 预估耗时(分钟) 实际耗时 计划 20 30 预估任务需要时间 20 30 开发 ...

  6. Keepalived详解(三):Keepalived基础功能应用实例【转】

    Keepalived基础功能应用实例: 1.Keepalived基础HA功能演示: 在默认情况下,Keepalived可以实现对系统死机.网络异常及Keepalived本身进行监控,也就是说当系统出现 ...

  7. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

  8. (转)Chrome开发者工具不完全指南(一、基础功能篇)

    本篇转载自卖烧烤夫斯基,并做了小部分的修改. 原文地址:Chrome开发者工具不完全指南(一.基础功能篇) 原作者:卖烧烤夫斯基 就算你不是一名前端开发工程师,相信你也不会对Chrome浏览器感到陌生 ...

  9. 六、EnterpriseFrameWork框架基础功能之权限管理

    回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...

随机推荐

  1. MySQL高可用之MHA配置

    本文简单介绍了MySQL的高可用实现方式之一的MHA MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主 ...

  2. 【PAT甲级】1054 The Dominant Color (20 分)

    题意: 输入两个正整数M和N(M<=800,N<=600),分别代表一张图片的宽度和高度,接着输入N行每行包括M个点的颜色编号,输出这张图片主导色的编号.(一张图片的主导色占据了一半以上的 ...

  3. 【PAT甲级】1002 A+B for Polynomials (25 分)

    题意:给出两个多项式,计算两个多项式的和,并以指数从大到小输出多项式的指数个数,指数和系数. AAAAAccepted code: #include<bits/stdc++.h> usin ...

  4. ES 创建mapping

    mapping的写入与查看首先创建一个索引: curl -XPUT "http://erp2.es.kd1.pagoda.com.cn:80/erp_stock_index"{&q ...

  5. Redis数据的导出和导入(dump和load方式)

    迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式,通过redis-dump导出数据,再通 ...

  6. leetCode练题——26. Remove Duplicates from Sorted Array

    1.题目 26. Remove Duplicates from Sorted Array--Easy Given a sorted array nums, remove the duplicates  ...

  7. CSS各种小技巧

    /* *背景的透明度设置 */ -moz-opacity: 0.8; opacity:.80; filter: alpha(opacity=80); 待续...

  8. Kali 2020.1 默认密码不是toor

    官方2020年一月28日的文章中指出root/toor is dead. Long live kali/kali. 登录用户名和密码是kali:kali 但是虚拟机镜像下载页面没有及时更新,仍然提示登 ...

  9. Plastic Sprayers Manufacturer - Spray Principle, Spray Note

    The     Plastic Sprayers Manufacturer    stated that the spray is artificial fogging. Simply put, th ...

  10. Tomcat服务更新流程:

    Tomcat服务更新流程: 1.把需要更新的war包放在服务器/servers/tomcat9/update下.2.负载均衡服务上把要更新的服务器权重值调为0,即服务不转在这台要更新的服务器上.(重要 ...