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

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

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)
>>> k3=array(k2)
>>> 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函数让它恢复矩阵类型。

你可能感兴趣的:(个人学习笔记)