python创造矩阵

python的numpy创造矩阵


from numpy import mat

import numpy as np


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

data2=mat(ones((2,4)));                #创建一个2*4的1矩阵,默认是浮点型的数据, 

data3=mat(random.rand(2,2));          #这里的random模块使用的是numpy中的random模块,random.rand(2,2)                                                               创建的是一个二维数组,

data4=mat(random.randint(10,size=(3,3)));           #生成一个3*3的0-10之间的随机整数矩阵,如果需要指定下界                                                                                 则可以多加一个参数

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

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


a1=[1,2,3];

a2=mat(diag(a1));           #生成一个对角线为1、2、3的对角矩阵


手动创造矩阵

count = 1
a = []
for i in range(0, 3):
    tmp = []
    for j in range(0, 3):
        tmp.append(count)
        count += 1
    a.append(tmp)
print a
复制代码

结果:[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

但是注意一点:初始化(赋值全部为0时),下面是错误的!!

复制代码
tmp = []
for j in range(0, 3):
    tmp.append(0)
a = []
for i in range(0, 3):
    a.append(tmp)
print a
复制代码

结果:[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

原因:这样的列表tmp为同一个,改变任意行,其他行都会给随着改变,千万注意!!,下面正确:

复制代码
a = []
for i in range(0, 3):
    tmp = []
    for j in range(0, 3):
        tmp.append(0)
    a.append(tmp)
print a
复制代码

 

 

 

 


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

search7

请为我点赞!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值