Python如何从矩阵中读写单个元素的值

简而言之,比如有个ARR1 是array类型,ARR2=matrix(ARR1) 语句处理过的矩阵ARR2 是不能直接就单个元素进行读写的,可以使用ARR3=array(ARR2) 语句将其转换为array类型,然后就可以读写ARR3中的单个元素了,读写完毕之后,可以使用ARR1=matrix(ARR3) 再转换回来即可。

为了给矩阵某一个元素的值进行提取,我从网上找过一些办法,但都不是很全面,经过学习试验发现如下规律:

1.一个矩阵如果用列举的方法赋值(比如用numpy.eye()赋值),那么可以用如下方法进行单个元素的读写:
先是取值

>>> from numpy import *
>>> k1=eye(7)
>>> j=k1[1][2]
>>> j
0.0

再就是给矩阵里的元素赋值:

>>> from numpy import *
>>> k1=eye(7)

>>> k1[6][2]=3
>>> k1
array([[1., 0., 0., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0., 0., 0.],
       [0., 0., 1., 0., 0., 0., 0.],
       [0., 0., 0., 1., 0., 0., 0.],
       [0., 0., 0., 0., 1., 0., 0.],
       [0., 0., 0., 0., 0., 1., 0.],
       [0., 0., 3., 0., 0., 0., 1.]])
>>> 

2.然而当上述矩阵或者数组使用过mat命令或者matrix命令进行修改以后,制作出来的矩阵就不允许这种赋值了。
只能间接就某个矩阵元素进行赋值:
我选择用array来进行,效果比较好。

>>> from numpy import *
>>> k1=eye(3)
>>> k2=matrix(k1)   #这时候k2里的元素就不能直接被修改了,比如k2[2][2]=3不可以
>>> k3=array(k2)     #经过array(k2)这个操作之后,开k3里的单元素就可以被直接读写了。
>>> k1[1][2]=3
>>> y=k3[2][2]
>>> print (y)
1.0
>>> for i in k1:
...     print(i)
... 
[1. 0. 0.]
[0. 1. 3.]
[0. 0. 1.]
>>> for i in k2:
...     print(i)
... 
[[1. 0. 0.]]
[[0. 1. 0.]]
[[0. 0. 1.]]
>>> for i in k3:
...     print(i)
... 
[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]
>>> 

如果需要,用array函数读写完毕以后,可以再用matrix函数让它恢复矩阵类型。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值