基本功能(Basic Functionality)
默认情况下,所有NumPy函数都可通过SciPy命名空间使用。 导入SciPy时,无需显式导入NumPy函数。 NumPy的主要目标是同构多维数组。 它是一个元素表(通常是数字),都是相同的类型,由正整数元组索引。 在NumPy中,尺寸称为轴。 axes的数量称为rank 。
现在,让我们修改NumPy中的Vectors和Matrices的基本功能。 由于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具有从头开始创建数组的内置函数。 下面解释了其中一些功能。
Using zeros()
零(形状)函数将创建一个填充了具有指定形状的0值的数组。 默认的dtype是float64。 让我们考虑以下示例。
import numpy as np
print np.zeros((2, 3))
上述程序的输出如下。
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
Using ones()
ones(shape)函数将创建一个填充1个值的数组。 在所有其他方面它与零相同。 让我们考虑以下示例。
import numpy as np
print np.ones((2, 3))
上述程序的输出如下。
array([[ 1., 1., 1.],
[ 1., 1., 1.]])
Using 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
Using linspace()
linspace()函数将创建具有指定数量元素的数组,这些元素将在指定的开始值和结束值之间平均间隔。 让我们考虑以下示例。
import numpy as np
print np.linspace(1., 4., 6)
上述程序将生成以下输出。
array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])
Matrix
矩阵是一种专用的二维阵列,通过操作保留其二维特性。 它有一些特殊的运算符,如*(矩阵乘法)和**(矩阵幂)。 让我们考虑以下示例。
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]])
矩阵的转置
此功能返回self的转置。 让我们考虑以下示例。
import numpy as np
mat = np.matrix('1 2; 3 4')
mat.T
上述程序将生成以下输出。
matrix([[1, 3],
[2, 4]])
当我们转置矩阵时,我们创建一个新的矩阵,其行是原始的列。 另一方面,共轭转置为每个矩阵元素交换行和列索引。 矩阵的逆是矩阵,如果与原始矩阵相乘,则得到单位矩阵。