python数组和列表_Python-01矩阵、数组和列表等的总结

这篇博客总结了Python中numpy库的使用,详细介绍了如何创建和操作矩阵、数组和列表,包括一般和特殊矩阵的创建、矩阵运算、矩阵的属性(如维度、形状和大小)以及矩阵的转换。内容涵盖了numpy的arange、linspace、reshape等函数,还涉及到矩阵的乘法、转置、求逆、求和、最大值和最小值等操作。
摘要由CSDN通过智能技术生成

python的基础知识总结

使用到了numpy库,所以第一步需要

import numpy as np

1.创建矩阵

1.1一般矩阵的创建

创建一个二维的矩阵,并使用ndim、shape、size分别获取矩阵的维度,大小,元素个数。

# 1)创建矩阵

a1 = np.array([[1,2,3],

[2,3,4]])

print("矩阵a1:\n",a1)

print("number of dimension:",a1.ndim)

print("shape:",a1.shape)

print(‘size:‘,a1.size)

# matrix 方式创建

a3 = np.matrix([[1,2,3],

[4,5,6]])

print("a3:\n",a3)

# mat方式

from numpy import *

data1 = mat(zeros((3,3)))#创建一个3*3的零矩阵

data2 = mat(ones( (2,4)) ) #创建一个 全1矩阵

data3 = mat(random.rand(2,2)) #这里的random模块使用的是numpy中的random模块,random.rand(2,2)创建的是一个二维数组,需要将其转换成#matrix

data4 = mat(random.randint(10,size=(3,3))) # 10以内的随机3*3 矩阵

data5 = mat(random.randint(2,8,size=(2,6))) # 产生一个2-8之间随机整数的矩阵

data6 = mat(eye(2,2,dtype=int)) #产生一个2*2 的对角矩阵

# 对角矩阵

b = [1,2,3]

b1 = mat(diag(b)) # 生成一个对角线为1 2 3 的对角矩阵

print("对角矩阵为:\n",b1)

1.2特殊矩阵的创建

import numpy as np

# 特殊矩阵的创建

# numpy 的类型 arange有序数列 linspace的使用

a = np.array([2,3,4],dtype=np.int32)

print(a.dtype)

b = np.arange(10,20,2)

print(b)

c = np.arange(12).reshape((3,4))

print(c)

d1 = np.linspace(1,20,10)

print(d1)

d2 = np.linspace(1,20,10).reshape((2,5))

print(d2)

data1 = np.zeros((3,5))

print("全零矩阵:\n",data1)

data2 = np.ones((3,4),dtype=np.int16)

print("全一阵:\n",data2)

data3 = np.empty((3,4),dtype=np.float32)

print("empty:\n",data3)

2.矩阵的运算

# 矩阵的运算

print("# 矩阵的运算:")

c1 = mat([1,2,3])

c2 = mat([[1],[2],[3]])

c3 = c1*c2

print("矩阵乘运算结果:",c3)

c4 = multiply(c1,c2)

print("矩阵对应元素相乘:\n",c4)

c5 = c1 * 2

print("矩阵扩大多少倍:",c5)

# 矩阵的逆 转置

print("# matrix 求逆:")

d1 =mat(eye(2,2)*0.5)

d2 = d1.I #求矩阵得逆矩阵

print("矩阵的逆矩阵为:\n",d2)

d3 = d1.T

print("矩阵的转置:\n",d3)

# 矩阵的每一列、行的和

d4 = mat([[1,1],[2,3],[4,2]])

d5 = d4.sum(axis=0) #列求和

d6 = d4.sum(axis=1) #行求和

print("列求和:\n",d5)

print("行求和:\n",d6)

d7 = sum(d4[1,:]) #计算第一行所有列之和

d8 = sum(d4[:,1])# 矩阵行数 0 1 2行 列数 0 1 列

print("注意d4矩阵:",d7) # 2+3=5

print("注意d4矩阵:",d8) # 1+3+2=6

# 计算最大值和最小值 和索引

d9 = d4.max()

print("d4 matrix max:",d9)

d10 = max(d4[:,1]) #计算第二列的最大值

print("第二列最大值:",d10) #此方法得到的是矩阵

d11 = d4[1,:].max()

print("第二列最大值:",d11) # this way calclulate a number

d12 = np.max(d4,0) #计算所有列的最大值

print("所有列的最大值:",d12)

d13 =np.max(d4,1) #计算所有行的最大值

print("所有行的最大值:\n",d13)

d14 = np.argmax(d4,0) #计算所有列的最大值对应的索引

print("所有列最大值对应的索引:\n",d14)

d15 = np.argmax(d4[1,:]) #

print("第二行最大值对应改行的索引:",d15)

e1 = mat([[1,2,3],[4,5,6],[7,8,9]])

e2 = e1[1:,1:] #分割出矩阵第二行,第二列以后的元素

print("矩阵的分割:\n",e2)

e3 = mat(ones((2,2)))

e4 = mat(eye(2))

e5 = vstack((e3,e4)) #按列合并,增加了行数

print("矩阵列合并:\n",e5)

e6 = hstack((e3,e4))

print("矩阵的行合并:\n",e6)

f1 = [[1],‘hello‘,3]

f2 = array([[1,2,3],[2,3,4]])

dimension = f2.ndim

m,n = f2.shape

number = f2.size #元素总数

str = f2.dtype #元素的类型

print("矩阵的维数:",dimension)

print("矩阵的行数和列数:",m,n)

print("矩阵元素总个数:",number)

print("元素的类型:",str)

3 矩阵、列表、数组之间转换

g1 = [[1,2],[3,2],[4,5]] #列表

g2 = array(g1) #将列表转化为二维数组

g3 = mat(g1) #将列表转化为矩阵

g4 = array(g3) #将矩阵转化为数组

g41 = g3.getA() #将矩阵转化为数组

g5 = g3.tolist() #将矩阵转化为列表

g6 = g2.tolist() #将数组转化为列表

print("列表:",g1)

print("数组:",g2)

print("矩阵:",g3)

print("矩阵转为数组:",g4)

print("矩阵转为数组:",g41)

print("矩阵转化为列表:",g5)

print("数组转化为列表:",g6)

原文:https://www.cnblogs.com/yumoz/p/13278740.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值