- SciPy 教程
- SciPy - 首页
- SciPy - 简介
- SciPy - 环境设置
- SciPy - 基本功能
- SciPy - 聚类
- SciPy - 常量
- SciPy - FFTpack
- SciPy - 积分
- SciPy - 插值
- SciPy - 输入和输出
- SciPy - 线性代数 (Linalg)
- SciPy - 图像处理 (Ndimage)
- SciPy - 优化
- SciPy - 统计
- SciPy - 压缩稀疏图 (CSGraph)
- SciPy - 空间
- SciPy - 正交距离回归 (ODR)
- SciPy - 特殊函数包
- SciPy 有用资源
- SciPy - 参考
- SciPy - 快速指南
- SciPy - 有用资源
- SciPy - 讨论
SciPy - 基本功能
默认情况下,所有 NumPy 函数都可通过 SciPy 命名空间访问。导入 SciPy 后,无需显式导入 NumPy 函数。NumPy 的主要对象是同构多维数组。它是一个元素(通常是数字)的表格,所有元素类型相同,由正整数元组索引。在 NumPy 中,维度称为轴。轴的数量称为秩。
现在,让我们回顾一下 NumPy 中向量和矩阵的基本功能。由于 SciPy 建立在 NumPy 数组之上,因此了解 NumPy 基础知识是必要的,因为线性代数的大部分内容都只处理矩阵。
NumPy 向量
可以通过多种方式创建向量。下面描述其中一些。
将 Python 类数组对象转换为 NumPy
让我们考虑以下示例。
import numpy as np list = [1,2,3,4] arr = np.array(list) print arr
上述程序的输出如下。
[1 2 3 4]
NumPy 本身数组创建
NumPy 具有从头开始创建数组的内置函数。下面解释其中一些函数。
使用 zeros()
zeros(shape) 函数将创建一个填充 0 值的数组,其形状已指定。默认 dtype 为 float64。让我们考虑以下示例。
import numpy as np print np.zeros((2, 3))
上述程序的输出如下。
array([[ 0., 0., 0.], [ 0., 0., 0.]])
使用 ones()
ones(shape) 函数将创建一个填充 1 值的数组。在所有其他方面,它与 zeros 相同。让我们考虑以下示例。
import numpy as np print np.ones((2, 3))
上述程序的输出如下。
array([[ 1., 1., 1.], [ 1., 1., 1.]])
使用 arange()
arange() 函数将创建具有规律递增值的数组。让我们考虑以下示例。
import numpy as np print np.arange(7)
上述程序将生成以下输出。
array([0, 1, 2, 3, 4, 5, 6])
定义值的數據類型
让我们考虑以下示例。
import numpy as np arr = np.arange(2, 10, dtype = np.float) print arr print "Array Data Type :",arr.dtype
上述程序将生成以下输出。
[ 2. 3. 4. 5. 6. 7. 8. 9.] Array Data Type : float64
使用 linspace()
linspace() 函数将创建具有指定数量元素的数组,这些元素将在指定的起始值和结束值之间平均间隔。让我们考虑以下示例。
import numpy as np print np.linspace(1., 4., 6)
上述程序将生成以下输出。
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])
矩阵
矩阵是一个专门的二维数组,它通过运算保留其二维特性。它具有一些特殊的运算符,例如 *(矩阵乘法)和 **(矩阵幂)。让我们考虑以下示例。
import numpy as np print np.matrix('1 2; 3 4')
上述程序将生成以下输出。
matrix([[1, 2], [3, 4]])
矩阵的共轭转置
此功能返回自身的(复数)共轭转置。让我们考虑以下示例。
import numpy as np mat = np.matrix('1 2; 3 4') print mat.H
上述程序将生成以下输出。
matrix([[1, 3], [2, 4]])
矩阵的转置
此功能返回自身的转置。让我们考虑以下示例。
import numpy as np mat = np.matrix('1 2; 3 4') mat.T
上述程序将生成以下输出。
matrix([[1, 3], [2, 4]])
当我们转置矩阵时,我们创建一个新的矩阵,其行是原始矩阵的列。另一方面,共轭转置为每个矩阵元素交换行索引和列索引。矩阵的逆是一个矩阵,如果与原始矩阵相乘,则会产生单位矩阵。