如何在Python中利用numpy库将矩阵转换为列表

这篇文章主要介绍了如何在Python中利用numpy库将矩阵转换为列表,恰卡编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随恰卡编程网小编来看看吧!

python可以做什么

Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。

如何在Python中利用numpy库将矩阵转换为列表

(1)将矩阵转换为列表的函数:numpy.matrix.tolist()

返回list列表

Examples

>>>

>>>x=np.matrix(np.arange(12).reshape((3,4)));x
matrix([[0,1,2,3],
[4,5,6,7],
[8,9,10,11]])
>>>x.tolist()
[[0,1,2,3],[4,5,6,7],[8,9,10,11]]

(2)将数组转换为列表的函数:numpy.ndarray.tolist()

Notes:(数组能够被重新构造)

The array may be recreated, a=np.array(a.tolist()).

Examples

>>>

>>>a=np.array([1,2])
>>>a.tolist()
[1,2]
>>>a=np.array([[1,2],[3,4]])
>>>list(a)
[array([1,2]),array([3,4])]
>>>a.tolist()
[[1,2],[3,4]]

(3)numpy.mean()计算矩阵或数组的均值:

Examples

>>>

>>>a=np.array([[1,2],[3,4]])#对所有元素求均值
>>>np.mean(a)
2.5
>>>np.mean(a,axis=0)#对每一列求均值
array([2.,3.])
>>>np.mean(a,axis=1)#对每一行求均值
array([1.5,3.5])

(4)numpy.std()计算矩阵或数组的标准差:

Examples

>>>

>>>a=np.array([[1,2],[3,4]])#对所有元素求标准差
>>>np.std(a)
1.1180339887498949
>>>np.std(a,axis=0)#对每一列求标准差
array([1.,1.])
>>>np.std(a,axis=1)#对每一行求标准差
array([0.5,0.5])

(5)numpy.newaxis为数组增加一个维度:

Examples:

>>>a=np.array([[1,2,3],[4,5,6],[7,8,9]])#先输入3行2列的数组a
>>>b=a[:,:2]
>>>b.shape#当数组的行与列都大于1时,不需增加维度
(3,2)
>>>c=a[:,2]
>>>c.shape#可以看到,当数组只有一列时,缺少列的维度
(3,)
>>>c
array([3,6,9])
>>>d=a[:,2,np.newaxis]#np.newaxis实现增加列的维度
>>>d
array([[3],
[6],
[9]])
>>>d.shape#d的维度成了3行1列(3,1)
(3,1)
>>>e=a[:,2,None]#None与np.newaxis实现相同的功能
>>>e
array([[3],
[6],
[9]])
>>>e.shape
(3,1)

(6)numpy.random.shuffle(index): 打乱数据集(数组)的顺序:

Examples:

>>>index=[iforiinrange(10)]
>>>index
[0,1,2,3,4,5,6,7,8,9]
>>>np.random.shuffle(index)
>>>index
[7,9,3,0,4,1,5,2,8,6]

(7)计算二维数组某一行或某一列的最大值最小值:

>>>importnumpyasnp
>>>a=np.arange(15).reshape(5,3)#构造一个5行3列的二维数组
>>>a
array([[0,1,2],
[3,4,5],
[6,7,8],
[9,10,11],
[12,13,14]])
>>>b=a[:,0].min()##取第0列的最小值,其他列同理
>>>b
0
>>>c=a[0,:].max()##取第0行的最大值,其他行同理
>>>c
2

(8)向数组中添加列:np.hstack()

n=np.array(np.random.randn(4,2))

n
Out[153]:
array([[0.17234,-0.01480043],
[-0.33356669,-1.33565616],
[-1.11680009,0.64230761],
[-0.51233174,-0.10359941]])

l=np.array([1,2,3,4])

l
Out[155]:array([1,2,3,4])

l.shape
Out[156]:(4,)

可以看到,n是二维的,l是一维的,如果直接调用np.hstack()会出错:维度不同。

n=np.hstack((n,l))
ValueError:alltheinputarraysmusthavesamenumberofdimensions

解决方法是将l变为二维的,可以用(5)中的方法:

n=np.hstack((n,l[:,np.newaxis]))##注意:在使用np.hstack()时必须用()把变量括起来,因为它只接受一个变量

n
Out[161]:
array([[0.17234,-0.01480043,1.],
[-0.33356669,-1.33565616,2.],
[-1.11680009,0.64230761,3.],
[-0.51233174,-0.10359941,4.]])

下面讲一下如何按列往一个空列表添加值:

n=np.array([[1,2,3,4,5,6],[11,22,33,44,55,66],[111,222,333,444,555,666]])##产生一个三行六列容易区分的数组

n
Out[166]:
array([[1,2,3,4,5,6],
[11,22,33,44,55,66],
[111,222,333,444,555,666]])

sample=[[]foriinrange(3)]##产生三行一列的空列表
Out[172]:[[],[],[]]
foriinrange(0,6,2):##每间隔一列便添加到sample中
sample=np.hstack((sample,n[:,i,np.newaxis]))


sample
Out[170]:
array([[1.,3.,5.],
[11.,33.,55.],
[111.,333.,555.]])

以上就是恰卡编程网小编为大家收集整理的如何在Python中利用numpy库将矩阵转换为列表,如何觉得恰卡编程网网站的内容还不错,欢迎将恰卡编程网网站推荐给身边好友。

发布于 2021-02-24 07:36:03
收藏
分享
海报
0 条评论
164
上一篇:利用Python怎么将阿拉伯数字和罗马数字进行转换 下一篇:怎么在python中使用Opencv将图片转为字符画
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码