一、tensorflow
1.定义矩阵、获取指定行列元素
代码:
import tensorflow.compat.v1 as tf
tf.disable_eager_execution() # 保证sess.run()能够正常运行
data1 = tf.constant([[1, 2], # 声明矩阵
[3, 4],
[5, 6]])
print(data1.shape) # 输出矩阵维度
with tf.Session() as sess:
print(sess.run(data1[1])) # 输出矩阵第2行
print(sess.run(data1[:, 1])) # 输出矩阵第2列
print(sess.run(data1[1, 1])) # 输出矩阵第2行、第2列的数据
输出结果:
2.矩阵的乘法和加法
代码:
import tensorflow.compat.v1 as tf
tf.disable_eager_execution() # 保证sess.run()能够正常运行
data1 = tf.constant([[1, 2]]) # 声明矩阵
data2 = tf.constant([[3],
[4]])
data3 = tf.constant([[5, 6]])
matMul = tf.matmul(data1, data2) # 两矩阵相乘
matAdd = tf.add(data1, data3) # 两矩阵相加
with tf.Session() as sess:
print(data1.shape, "*", data2.shape)
print(sess.run(matMul)) # 输出相乘结果
print(data1.shape, "+", data3.shape)
print(sess.run(matAdd)) # 输出相加结果
输出结果:
3.定义全 0 、全 1 和自动填充矩阵
代码:
import tensorflow.compat.v1 as tf
tf.disable_eager_execution() # 保证sess.run()能够正常运行
data1 = tf.zeros([2, 3]) # 全0矩阵
data2 = tf.ones([2, 1]) # 全1矩阵
data3 = tf.fill([2, 2], 3) # 自动填充矩阵
with tf.Session() as sess:
print(sess.run(data1)) # 输出结果
print(sess.run(data2))
print(sess.run(data3))
输出结果:
4.其他特殊形式的矩阵
代码:
import tensorflow.compat.v1 as tf
tf.disable_eager_execution() # 保证sess.run()能够正常运行
data1 = tf.constant([[2, 3, 4],
[5, 6, 7]])
data2 = tf.zeros_like(data1) # 相同维度的全0矩阵
data3 = tf.lin_space(0.0, 12.0, 3) # 范围内的均分矩阵
data4 = tf.random_uniform([2, 2], -2, 5) # 范围内的随机矩阵
with tf.Session() as sess:
print(sess.run(data2)) # 输出结果
print(sess.run(data3))
print(sess.run(data4))
输出结果:
二、numpy
numpy 是一个运行速度非常快的数学库,支持大维度的数组与矩阵运算。
代码:
import numpy as np
data1 = np.array([[1, 2, 3], # 定义矩阵
[4, 5, 6]])
data2 = np.zeros([2, 3]) # 定义全0矩阵
data3 = np.ones([2, 3]) # 定义全1矩阵
data4 = np.ones([3, 1])
print(data1 * 2) # 矩阵所有元素*2
print(data1 + data2) # 矩阵相加
print(data1 * data3) # 相同位置的元素相乘
print(np.matmul(data1, data4)) # 矩阵乘法
输出结果: