默认情况下,所有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]]

最新文章

  1. mybatis动态切换数据源
  2. Zabbix邮件报警--&gt;Script
  3. zend guard6的使用
  4. Perl Print Win32 Console Windows 控制台 print Unicode 问题
  5. Mac android 开发 sdk配置和手机连接
  6. Android——拖动条SeekBar
  7. javaSE第一天
  8. apache maven
  9. centos6.5 apache+tomcat结合 负载均衡
  10. Day05 - Python 常用模块
  11. java代理课程测试 spring AOP代理简单测试
  12. Python 技巧
  13. selenium结合docker构建分布式测试环境
  14. python实现 字符串匹配函数
  15. 一套能体现 RBAC 的表结构设计
  16. winfrom
  17. 深入理解JVM(二)Java内存区域
  18. virtualenv 包管理
  19. StreamSets 相关文章
  20. WPF实现的简单饼图

热门文章

  1. 【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)
  2. Shell函数!
  3. 工具,Linux - tree命令,显示程序树型结构
  4. FreeSWITCH调用第三方TTS 使用tts_commandline
  5. 3.ORM框架一对多的关系及使用
  6. 服务器settings
  7. day 11 笔记
  8. LeetCode 21. Merge Two Sorted Lists(合并两个有序链表)
  9. ORACLE A表字段更改为B表的字段
  10. Linux centos7 VMware Apache访问日志不记录静态文件、访问日志切割、静态元素过期时间