江门网站seo推广,wordpress有点,Wordpress一直刷不出,东西湖区建设局网站矩阵的运算 加法#xff0c;数乘#xff0c;减法#xff0c;转置
矩阵的加减
矩阵的加法就是矩阵的对应位置相加#xff0c;减法也是一样就是对应位置相减
数乘 转置
转置的操作和向量是一样的#xff0c;就是把 aij 变成 aji#xff0c;把行和列互换一下 对于矩阵而…矩阵的运算 加法数乘减法转置
矩阵的加减
矩阵的加法就是矩阵的对应位置相加减法也是一样就是对应位置相减
数乘 转置
转置的操作和向量是一样的就是把 aij 变成 aji把行和列互换一下 对于矩阵而言 转置其实就相当于把主对角线两侧的元素进行了调换 高维数组的转置方法tranpose
numpy.transpose方法用于交换数组的维度也就是将数组的行和列进行互换。对于二维数组来说它实际上就是进行转置操作。
函数签名
numpy.transpose(a, axesNone)numpy.ndarray.transpose(axesNone)参数
numpy.ndarray要进行转置操作的数组。axes可选参数用于指定交换维度的顺序(索引的形式)。默认情况下会交换所有维度。可以传入一个整数元组来指定交换的维度顺序。
返回值
返回转置后的数组。
注意事项
如果数组是一维的transpose方法不会对其进行转置直接返回原数组。如果数组是多维的transpose方法可以根据axes参数指定的顺序对维度进行调整。
示例
import numpy as np# 二维数组的转置转置相当于行列互换
arr np.array([[1, 2, 3], [4, 5, 6]])
# 法一transposed_arr np.transpose(arr)
# 转置数组行列互换
transposed_arr arr.transpose()
print(transposed_arr)
# 输出
# [[1 4]
# [2 5]
# [3 6]]# 也可以使用T属性来进行转置
transposed_arr2 arr.T
print(transposed_arr2)
# 输出
# [[1 4]
# [2 5]
# [3 6]]在线性代数和数组操作中经常需要对数组的维度进行变换numpy.transpose方法是一个非常有用的工具。它可以用于处理各种维度不一致的数组以及进行矩阵转置等操作。
实战
# coding: utf-8import numpy as np# 矩阵的加减
n1 np.arange(6).reshape(2, 3)
print(矩阵的加减演示, n1 n1, \n, n1 - n1)
print( * 20)# 矩阵的数乘
print(n1 * 5)
print( * 20)# 矩阵的转置
print(n1.T) # 转置
print( * 20)
v np.array([1, 2, 3])
print(v.T) # 一位数组转置后仍然显示为行向量 但它其实已经转置了
print( * 20)# 我们可以通过改变形状把它变为一个列向量 注转置后将会变为n行一列的二维数组
print(v.reshape(-1, 1)) # -1代表会根据数组的总元素个数和其他维度的大小自动计算该维度的大小
print( * 20)print(n1)
print(n1.reshape(3, 2)) # 千万要注意 对于更高维度的数组来说不能通过reshape改变形状来达到转置的目的 此方法仅限于一维数组向量
print( * 20)n1 np.arange(6).reshape(2, 3)
# 查看当前数组的形状
print(数组的形状, n1.shape)
n2 n1.transpose(1, 0) # 1, 0指的是维度的索引顺序 前一行的结果为数组的形状 (2, 3), 此时维度一索引为0维度二索引为1
print(n2)
# 我们再来打印下转置后的维度
print(n2.shape) # result:(3, 2), 可以看到维度由2行3列变成了3行2列
print( * 20)temp1 np.arange(24).reshape((2, 3, 4)) # 创建一个三维数组, 可以理解为两个三行四列的元素组成的
print(temp1)
# 进行三维数组的转置
temp2 temp1.transpose(1, 0, 2) # 此时的维度对应的是(3 2 4)
print(转置后的数组\n, temp2)
print(采用reshape直接改变形状的数组\n, temp1.reshape((3, 2, 4)))result:
可以看到高维数组已经不能简单的以改变数组的维度来去转置 改变维度转置只限于一维数组
转置后的数组[[[ 0 1 2 3][12 13 14 15]][[ 4 5 6 7][16 17 18 19]][[ 8 9 10 11][20 21 22 23]]]
采用reshape直接改变形状的数组[[[ 0 1 2 3][ 4 5 6 7]][[ 8 9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]]]
result:
矩阵的加减演示 [[ 0 2 4][ 6 8 10]] [[0 0 0][0 0 0]][[ 0 5 10][15 20 25]][[0 3][1 4][2 5]][1 2 3][[1][2][3]][[0 1 2][3 4 5]]
[[0 1][2 3][4 5]]数组的形状 (2, 3)
[[0 3][1 4][2 5]]
(3, 2)[[[ 0 1 2 3][ 4 5 6 7][ 8 9 10 11]][[12 13 14 15][16 17 18 19][20 21 22 23]]]
转置后的数组[[[ 0 1 2 3][12 13 14 15]][[ 4 5 6 7][16 17 18 19]][[ 8 9 10 11][20 21 22 23]]]
采用reshape直接改变形状的数组[[[ 0 1 2 3][ 4 5 6 7]][[ 8 9 10 11][12 13 14 15]][[16 17 18 19][20 21 22 23]]]进程已结束,退出代码0