zoukankan      html  css  js  c++  java
  • Python之二维数组(list与numpy.array)

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

     1 >>import numpy as np
     2  
     3 >>a=[[1,2,3],[4,5,6],[7,8,9]]
     4 >>a
     5 [[1,2,3],[4,5,6],[7,8,9]]
     6 >>type(a)
     7 <type 'list'>
     8  
     9 >>b=np.array(a)"""List 转为 array"""
    10 >>type(b)
    11 <type 'numpy.array'>
    12 >>b
    13 array=([[1,2,3],
    14         [4,5,6],
    15         [7,8,9]])

    2、list对应的索引输出情况:

     1 >>a[1][1]
     2 5
     3  
     4 >>a[1]
     5 [4,5,6]
     6  
     7 >>a[1][:]
     8 [4,5,6]
     9  
    10 >>a[1,1]"""相当于a[1,1]被认为是a[(1,1)],不支持元组索引"""
    11 Traceback (most recent call last):
    12   File "<stdin>", line 1, in <module>
    13 TypeError: list indices must be integers, not tuple
    14 >>a[:,1]
    15  
    16 Traceback (most recent call last):
    17   File "<stdin>", line 1, in <module>
    18 TypeError: list indices must be integers, not tuple
    >>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])

    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也会随之改变。

  • 相关阅读:
    JVM-压缩指针
    JVM-Java GC分析
    MySQL 技巧
    Tomcat启动web项目报Bad version number in .class file (unable to load class ...)错误的解决方法
    关于web.xml中的<welcome-file-list>中的默认首页资料
    JS传递中文参数出现乱码的解决办法
    jquery实现奇偶行赋值不同css值
    MyBatis传入多个参数的问题
    从MYSQL数据库查出指定格式的日期
    jquery 操作实例一
  • 原文地址:https://www.cnblogs.com/cuc-lyp/p/13904472.html
Copyright © 2011-2022 走看看