SciPy 基本功能
默认情况下,所有的NumPy函数都可以通过SciPy命名空间获得。当SciPy被导入时,不需要明确导入NumPy函数。NumPy的主要对象是同质的多维数组。它是一个元素(通常是数字)的表格,所有的元素都是相同的类型,由正整数的元组来索引。在NumPy中,尺寸被称为轴。 轴 的数量被称为 等级。
现在,让我们回顾一下NumPy中矢量和矩阵的基本功能。由于SciPy是建立在NumPy数组之上的,所以了解NumPy的基础知识是必要的。因为线性代数的大部分内容只涉及到矩阵。
NumPy Vector
一个向量可以通过多种方式创建。下面将介绍其中的一些。
将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值的数组。它在所有其他方面都与零相同。让我们考虑下面的例子。
import numpy as np
print np.ones((2, 3))
上述程序的输出结果将如下。
array([[ 1., 1., 1.],
[ 1., 1., 1.]])
使用range()函数
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]])
矩阵的共轭转置
该功能返回 self 的(复数)共轭转置 。 让我们考虑下面的例子。
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]])
当我们对一个矩阵进行转置时,我们会生成一个新的矩阵,其行与原矩阵的列相同。另一方面,共轭转置则是将每个矩阵元素的行和列索引互换。矩阵的反转是一个矩阵,如果与原矩阵相乘,会产生一个相同的矩阵。