美文网首页数据科学与Python我爱编程
Python 编程—list 与 numpy.ndarray

Python 编程—list 与 numpy.ndarray

作者: 素娜93 | 来源:发表于2017-07-30 18:28 被阅读498次

    python中的二维数组,主要有 list(列表) 和 numpy.ndarray(多维数组) 两种, 两种的区别主要体现在numpy.ndarray 支持更多的索引方式,下面通过代码来看一下两种数据类型索引方式的区别:

    import numpy as np
    a=[[1,2,3], [4,5,6]]
    type(a)
    <type 'list'>
    a
    [[1, 2, 3], [4, 5, 6]]
    b=np.array(a)
    type(b)
    <type 'numpy.ndarray'>
    b
    array([[1, 2, 3],
           [4, 5, 6]])
    

    接着对a 和b 中的元素进行访问:

    a[1]
    [4, 5, 6]
    b[1]
    array([4, 5, 6])
    a[1][1]
    5
    b[1][1]
    5
    a[1][:]
    [4, 5, 6]
    b[1][:]
    array([4, 5, 6])
    #下面就是两者的区别
    a[1,1]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: list indices must be integers, not tuple
    b[1,1]
    5
    a[:,1]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: list indices must be integers, not tuple
    b[:,1]
    array([2, 5])
    

    可以看到numpy.ndarray 比list的访问方式更灵活,因此在处理数据时,可以通过np.array()方便的将list转化为numpy.ndarray, 当然处理完后还可以通过tolist()将ndarray再转回列表,从而方便删除或添加元素。

    import numpy as np
    a=[[1,2,3],[4,5,6]]
    type(a)
    <type 'list'>
    b=np.array(a)
    type(b)
    <type 'numpy.ndarray'>
    c=b.tolist()
    type(c)
    <type 'list'>
    

    相关文章

      网友评论

        本文标题:Python 编程—list 与 numpy.ndarray

        本文链接:https://www.haomeiwen.com/subject/qavtlxtx.html