Python之二维数组(list与numpy.array)
发布日期:2021-10-07 11:13:30 浏览次数:10 分类:技术文章

本文共 1264 字,大约阅读时间需要 4 分钟。

1、python中的二维数组,主要有list和numpy.array两种 

>>import numpy as np>>a=[[1,2,3],[4,5,6],[7,8,9]]>>a[[1,2,3],[4,5,6],[7,8,9]]>>type(a)
>>b=np.array(a)"""List 转为 array""">>type(b)
>>barray=([[1,2,3], [4,5,6], [7,8,9]])
  • 2、list对应的索引输出情况:

>>a[1][1]5>>a[1][4,5,6]>>a[1][:][4,5,6]>>a[1,1]"""相当于a[1,1]被认为是a[(1,1)],不支持元组索引"""Traceback (most recent call last):  File "
", line 1, in
TypeError: list indices must be integers, not tuple>>a[:,1]Traceback (most recent call last): File "
", line 1, in
TypeError: list indices must be integers, not tuple
  • 3、numpy.array对应的索引输出情况:

>>b[1][1]5>>b[1]array([4,5,6])>>b[1][:]array([4,5,6])>>b[1,1]5>>b[:,1]array([2,5,8])
  • 对比可以看出, numpy.array支持比list更多的索引方式,这也是我们最经常遇到的关于两者的区别。此外从上可以了解到“由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],有3个指针和3个整数对象。”
  • 4、先看一段代码

  • 先看一段代码>>array = [0, 0, 0]>>matrix = [array*3]## [[0,0,0,0,0,0,0,0,0]]这段代码其实没有新建一个二维数组再看一段代码>>array = [0, 0, 0]>>matrix = [array] * 3## [[0, 0, 0], [0, 0, 0], [0, 0, 0]]咋一看这段代码应该创建一个二维数组了测试一下>>matrix[0][1] = 1>>print matrix## [[0, 1, 0], [0, 1, 0], [0, 1, 0]]照理matrix[0][1]修改的应该只是二维数组中的一个元素,但是测试结果表明,修改的是每个List的第二个元素。

    matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。

转载地址:https://blog.csdn.net/mingyuli/article/details/81238986 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python中的X[:,0]和X[:,1]等
下一篇:python3 TypeError: 'map' object is not subscriptable

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月28日 17时46分27秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章