成都网站建设设计

将想法与焦点和您一起共享

python定义函数矩阵,Python的矩阵

python 怎么实现矩阵运算

1.numpy的导入和使用

创新互联-专业网站定制、快速模板网站建设、高性价比芦山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式芦山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖芦山地区。费用合理售后完善,十年实体公司更值得信赖。

data1=mat(zeros((

)))

#创建一个3*3的零矩阵,矩阵这里zeros函数的参数是一个tuple类型(3,3)

data2=mat(ones((

)))

#创建一个2*4的1矩阵,默认是浮点型的数据,如果需要时int类型,可以使用dtype=int

data3=mat(random.rand(

))

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

data4=mat(random.randint(

10

,size=(

)))

#生成一个3*3的0-10之间的随机整数矩阵,如果需要指定下界则可以多加一个参数

data5=mat(random.randint(

,size=(

))

#产生一个2-8之间的随机整数矩阵

data6=mat(eye(

,dtype=

int

))

#产生一个2*2的对角矩阵

a1=[

]; a2=mat(diag(a1))

#生成一个对角线为1、2、3的对角矩阵

用python的numpy创建一个矩阵

使用numpy创建矩阵有2种方法,一种是使用numpy库的matrix直接创建,另一种则是使用array来创建。首先加载numpy库,然后分别用上面说的2种方法来分别构建一个4×3的矩阵,如图

请点击输入图片描述

2

矩阵创建好了,大家看到了2个矩阵长得差不多,是否相等呢?我们用==(python中用==表示等于)来试试看看,如下图

请点击输入图片描述

3

我们下面看看2个矩阵相乘的结果,可以看到使用matrix创建的矩阵m1乘以自身,结果报错了:因为矩阵相乘需要满足一定的条件[1];而使用array创建的矩阵m2乘以自身,结果并没有报错,因为这里用的是Hadamard乘法[2];而m1×m2也报错了,说明只要有一个是matrix,就不能用Hadamard乘法,如图所示

请点击输入图片描述

请点击输入图片描述

请点击输入图片描述

4

下面看几个特殊矩阵[3]:使用np.zeros可以生成零矩阵,使用np.ones可以生成1矩阵,使用np.identity可以生成单位矩阵,使用np.diag可以生成对角矩阵,如图所示

请点击输入图片描述

请点击输入图片描述

5

最后看看矩阵的行向量和列向量提取方法。例如m1[[0,3]]表示提取矩阵m1的第0行和第3行[4],当然也可以用m1[[True,False,False,True]]来达到同样的效果,True就是表示对应的行要提取;而m1[:,[-2,-1]]则是提取矩阵的最后2列的列向量,m1[:,[False,True,True]]的一样可以提取最后2列的列向量,如图所示

请点击输入图片描述

请点击输入图片描述

END

注意事项

[1]在高等数学或者线性代数等已经学过了当后面的矩阵的行数等于前面矩阵的列数时,2个矩阵才可以相乘

[2]Hadamard指的是2个m×n的矩阵相乘,结果仍然是m×n的矩阵,结果为对应元素的乘积

[3]单位矩阵是特殊的对角矩阵,零(1)矩阵是指元素全部是0(1)的矩阵

[4]矩阵的第一行是从0开始编号的,python中的各种编号基本上都是从0开始的

如何使用python表示矩阵

使用python表示矩阵的方法:

使用“import numpy”语句导入numpy包。用numpy包的array函数创建一个二维数组,这个二维数组就表示矩阵

示例代码如下:

执行结果如下:

python怎样生成一个随机矩阵

import random #导入随机数模块

m=10

n=10

matrix = [[0 for i in range(m)] for i in range(n)] #定义数组

for row in range(0,m):

for col in range(0,n):

matrix[row].append(random.randint(0,101)) #赋值

for row in range(0,m):

print  matrix[row]#打印

结果

python循环控制函数matrix,使得他可以将输入的列表转化为一个行列数自定的矩阵

1、程序运行输入数据时,第一行为A矩阵的行列数和B矩阵的行列数,接着分别输入A、B两个矩阵的值。

2、首先,定义6个整型变量,保存A、B矩阵的行和列,以及控制循环的变量,k则用于实现矩阵的乘法。

3、接着,定义三个整型二维数组,保存A、B和C矩阵的各元素。

4、输入三个矩阵的行数和列数,保存在变量a、b、c中。

5、输入矩阵A的各元素,保存在数组X中。

6、输入矩阵B的各元素,保存在数组Y中。

7、将二维数组Z的各元素,初始化为0。

8、用两层for循环,控制矩阵的乘法,并输出乘法所得的结果。

9、计算A矩阵和B矩阵的乘法,结果保存在数组Z中。

10、最后,输出乘法所得的结果,即输出Z数组中的所有元素。

11、运行程序,输入矩阵A和B的行数和列数,以及A矩阵和B矩阵的所有元素,电脑就会计算出乘积C矩阵的所有元素,并输出C矩阵。

python:定义函数,输入一个m维数组X和一个整数n,输出一个n*m的矩阵M,其中 M[i] [j]=

# Python3.6

import numpy as np

while True:

x = input("输入一个m维数组,元素以空格分开:")

try:

# split input

x = x.split()

s = []

# iterate:str--int

for i in x:

s.append(int(i))

x = s

break

except:

print("输入有错,请重新输入。")

while True:

n = input("整数n:")

try:

n = int(n)

break

except:

print("输入有错,请重新输入。")

# map object --list object

lst = [i for i in x]

# list object --numpy.array object

mtrx = np.array(lst)

# copy the 1st line of matrix as a template

mtrx_1 = np.copy(mtrx)

k = len(mtrx)

# reshape (k,) to (1,k) for concatenate

mtrx = np.reshape(mtrx, (1, k))

# calculate left lines

for i in range(1, n):

tmp = np.power(mtrx_1, i+1)

tmp = np.reshape(tmp, (1, k))

mtrx = np.concatenate((mtrx, tmp), axis=0)

print(mtrx)


本文标题:python定义函数矩阵,Python的矩阵
分享地址:http://chengdu.cdxwcx.cn/article/hsijhs.html