对于多维矩阵,可以进行变形、加减乘除等操作,本节就来介绍常见的相关操作。

1、变形reshape(维度列表)

例如原来是 3×4 的矩阵,可以将其变成 6×2 的矩阵。内容不变,但是样子发生了改变。方法如下:

>>> x = np.arange(1, 7) # 一维矩阵

>>> x

array([1, 2, 3, 4, 5, 6])

>>> y = x.reshape(2, 3) # 变成2行3列的二维矩阵

>>> y

array([[1, 2, 3],

[4, 5, 6]])

2、加减乘除操作

加法操作是指对外形相同的两个矩阵,进行相同位置元素的加法运算,得到一个和输入矩阵相同外形的矩阵。下面的代码便演示了加法操作的使用:

>>> a = numpy.random.rand(3,2) # a是3行2列的随机二维矩阵

>>> b = numpy.random.rand(3,2) # b是3行2列的随机二维矩阵

>>> a # 查看a的值

array([[0.49219148, 0.30470874],

[0.42371119, 0.96857757],

[0.09432051, 0.55935613]])

>>> b # 查看b的值

array([[0.41471195, 0.85316671],

[0.6231908 , 0.98244841],

[0.65246256, 0.73501929]])

>>> a+b # a+b的值

array([[0.90690343, 1.15787545],

[1.04690199, 1.95102597],

[0.74678307, 1.29437542]])

与之类似的还有减法、乘法和除法操作,其运算符号和普通的数值运算符号相同,都是对相同的位置进行操作。下面的例子是减法操作的使用:

>>> a = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> b = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> a # 查看矩阵a的内容

array([[0.49219148, 0.30470874],

[0.42371119, 0.96857757],

[0.09432051, 0.55935613]])

>>> b # 查看矩阵b的内容

array([[0.41471195, 0.85316671],

[0.6231908 , 0.98244841],

[0.65246256, 0.73501929]])

>>> a-b # 减法操作

array([[ 0.07747953, -0.54845797],

[-0.19947961, -0.01387084],

[-0.55814205, -0.17566316]])

下面的例子是乘法操作的使用:

>>> a = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> b = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> a # 查看矩阵a的内容

array([[0.49219148, 0.30470874],

[0.42371119, 0.96857757],

[0.09432051, 0.55935613]])

>>> b # 查看矩阵b的内容

array([[0.41471195, 0.85316671],

[0.6231908 , 0.98244841],

[0.65246256, 0.73501929]])

>>> a * b # 乘法操作

array([[0.20411769, 0.25996735],

[0.26405291, 0.95157749],

[0.0615406 , 0.41113754]])

下面是除法操作运算的例子:

>>> a = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> b = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> a # 查看矩阵a的内容

array([[0.49219148, 0.30470874],

[0.42371119, 0.96857757],

[0.09432051, 0.55935613]])

>>> b # 查看矩阵b的内容

array([[0.41471195, 0.85316671],

[0.6231908 , 0.98244841],

[0.65246256, 0.73501929]])

>>> a / b # 除法操作

array([[1.18682735, 0.3571503 ],

[0.67990604, 0.98588135],

[0.1445608 , 0.76100877]])

3、逻辑判断

还可以对矩阵进行逻辑判断,例如判断矩阵元素是否大于 0 或者小于 1。其结果是一个矩阵,分别表示各元素是否满足规定的判断。例如下面就是判断矩阵元素是否小于 0.5 的操作:

>>> a = np.random.rand(3,2) # 随机生成3x2的矩阵

>>> a # 查看矩阵a的内容

array([[0.36826283, 0.1993915 ],

[0.3278179 , 0.66236192],

[0.98973706, 0.67244684]])

>>> a < 0.5 # 各个元素是否小于0.5

array([[ True, True],

[ True, False],

[False, False]])

当然也可以和其他矩阵进行比较,例如下面的例子:

>>> a = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> b = numpy.random.rand(3,2) # 随机生成3x2的矩阵

>>> a # 查看矩阵a的内容

array([[0.49219148, 0.30470874],

[0.42371119, 0.96857757],

[0.09432051, 0.55935613]])

>>> b # 查看矩阵b的内容

array([[0.41471195, 0.85316671],

[0.6231908 , 0.98244841],

[0.65246256, 0.73501929]])

>>> a < b # a的各个元素是否小于b对应的元素

array([[False, True],

[ True, True],

[ True, True]])

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐