混淆矩阵
numpy生成矩阵的几种方式
# 1.arange+reshape
n = np.arange(0, 30, 2)# start at 0 count up by 2, stop before 30
n = n.reshape(3, 5) # reshape array to be 3x5
print(n)
# 2.linspace+resize
o = np.linspace(0, 4, 9)
o.resize(3, 3)
print(o)
# 3.ones zeros eye diag random.randint等创建矩阵
a = np.ones((3, 2))
print('a:', a)
b = np.zeros((2, 3))
print('b:', b)
c = np.eye(3)#3维单位矩阵
print('c:', c)
y = np.array([4, 5, 6])
np.diag(y)#以y为主对角线创建矩阵
print('y:', y)
d = np.random.randint(0, 10, (4,3))
print(d)
# 矩阵拼接
p = np.ones([2, 3], int)
e = np.hstack([p, 2*p])#水平拼接
f = np.vstack([p, 2*p])#竖直拼接
print('e:', e)
print('f:', f)
# reshape和resize的区别
# 1. reshape的参数严格地说,应该是tuple类型(tuple of ints),似乎不是tuple也成(ints)。
x = np.random.rand(2, 3)
print(x)
x.reshape((3, 2))
print(x)
# 以tuple of ints
# .reshape 实现维度的提升
# (3, ) ≠ (3, 1):前者表示一维数组(无行和列的概念),后者则表示一个特殊的二维数组,也即是一个列向量
x = np.ones(3)
print(x)
x.reshape(3, 1)
print(x)
x.reshape(1, 3)
print(x)
# 2. .reshape 与 .resize
# reshape:有返回值,所谓有返回值,即不对原始多维数组进行修改;
# resize:无返回值,所谓有返回值,即会对原始多维数组进行修改;
X = np.random.randn(2, 3)
print(x)
X.reshape((3, 2))
print(x)
X.resize((3, 2))
print(x)
# 求主对角线的和
# 方法1:使用翻转
import random
import numpy as np
data= np.arange(1,10,1) #生成0-10之间3*3的随机矩阵
data = data.reshape(3,3)
print(data)
B=np.fliplr(data) #将data矩阵 在左右方向上翻转 flipud(data)是上下方向翻转
result=np.trace(data)+np.trace(B)#求两个矩阵的迹(主对角线的和)
print(result)
# 方法二:直接计算
# 但这个只能算一条对角线的和,是有问题的
import numpy as np
data= np.arange(1,10,1) #生成0-10之间3*3的随机矩阵
data = data.reshape(3,3)
print(data)
result = data.trace()
print(result)
sum = np.trace(data)
print(sum)
# 矩阵求和
import numpy as np
data= np.arange(1,10,1) #生成0-10之间3*3的随机矩阵
data = data.reshape(3,3)
result = np.sum(data)
print(result)
如何计算混淆矩阵对角线的和及混淆矩阵的和
最新推荐文章于 2024-05-13 18:58:40 发布