Python中的二维数组(list与numpy.array)
2017-08-31 22:55
567 查看
出处:https://hsh.blog.ustc.edu.cn/2015/04/24/238/
关于python中的二维数组,主要有list和numpy.array两种。上次课间阿C问我两者的区别,但是说实话,我在python方面也仅是入门,只会修改已有的代码和写一些基础的代码。关于这些细节其实也不是很清楚。这两天刚好也遇见了类似的问题,所以趁着跑程序的空总结一下。
其实在python下运行几个示例就可以看出两者的区别(这也是是我写python程序的常态>_<)
In [2]:
In [4]:
In [5]:
In [6]:
In [7]:
由上面的简单对比可以看出, numpy.array支持比list更多的索引方式,这也是我们最经常遇到的关于两者的区别。此外从[Numpy-快速处理数据]上可以了解到“由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],有3个指针和3个整数对象。”
此外可以通过dir(a)和dir(b)分别查看两者更详细的属性。
关于python中的二维数组,主要有list和numpy.array两种。上次课间阿C问我两者的区别,但是说实话,我在python方面也仅是入门,只会修改已有的代码和写一些基础的代码。关于这些细节其实也不是很清楚。这两天刚好也遇见了类似的问题,所以趁着跑程序的空总结一下。
其实在python下运行几个示例就可以看出两者的区别(这也是是我写python程序的常态>_<)
In [2]:
a = [[1, 2 , 3], [4, 5, 6]] import numpy as np b = np.array(a) print type(a) print a print type(b) print b
<type 'list'> [[1, 2, 3], [4, 5, 6]] <type 'numpy.ndarray'> [[1 2 3] [4 5 6]]
In [4]:
print a[1][2] print a[1][:]
6 [4, 5, 6]
补充:print a[:][1]
[4, 5, 6] 为什么答案跟a[1][:]一样,之前一直不解?以为答案会是[2,5]
其实[:]代表取所有,相当于复制整个list,a[:][1]表示先复制整个list之后取第二个元素,也就是[4,5,6]; a[1][:]表示先取第二个元素然后复制第二个元素。
为了验证 取
a[:][1][2], 答案果然是6.
In [5]:
print a[1,2]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-9da16148905d> in <module>()
----> 1 print a[1,2]
TypeError: list indices must be integers, not tuple
In [6]:
print a[1, :]
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-f921c5f2e22f> in <module>()
----> 1 print a[1, :]
TypeError: list indices must be integers, not tuple
In [7]:
print b[1][2] print b[1][:] print b[1, 2] print b[1, :]
6 [4 5 6] 6 [4 5 6]
由上面的简单对比可以看出, numpy.array支持比list更多的索引方式,这也是我们最经常遇到的关于两者的区别。此外从[Numpy-快速处理数据]上可以了解到“由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],有3个指针和3个整数对象。”
此外可以通过dir(a)和dir(b)分别查看两者更详细的属性。
相关文章推荐
- Python中的二维数组实例(list与numpy.array)
- Python中的二维数组(list与numpy.array)
- python内置array模块,与numpy中的array和list之间的转换
- Python中list和numpy.array的区别
- Python中的list与NumPy中array的区别 及相互转换
- 用list去初始化numpy的array数组 numpy的array和python中自带的list之间相互转化
- Python中list的拷贝与Numpy的array的拷贝的区别
- numpy的array和python中自带的list之间相互转化
- python中list的拷贝与numpy的array的拷贝
- Python numpy库中的array,list与矩阵的乘法,以及增添元素的方法
- 详谈Python中列表list,元祖tuple和numpy中的array区别
- numpy.array和python中list的相互转化
- 对numpy的array和python中自带的list之间相互转化详解
- numpy的array和python中自带的list之间相互转化
- Python之数组(array)使用方法总结与Numpy中的数组用法
- Python之数组(array)使用方法总结与Numpy中的数组用法
- python list和numpy互换
- 基于Python Numpy的数组array和矩阵matrix详解
- python学习笔记(三)- numpy基础:array及matrix详解
- python Numpy—— 数组array