- list:对于数值运算来说浪费内存和计算时间
- array模块:可以直接保存数值,但不支持多维数组,没有运算函数,不适合数值运算。
- NumPy:提供了ndarray(存贮单一数据类型的多维数组)和ufunc(对数组进行处理的函数)
ndarray对象
- 创建:
1.序列对象,通过array()转为数组
2.创建数组的函数。
arange(); linspace();logspace();.....
- 存取元素:
通过切片获取的新数组是原始数组的一个视图,与原始数组共享同一块数据存储空间。(存储空间内等间隔,可以实现数据共享)
当使用整数序列(整数列表或整数数组)对数组元素进行存取时,将使用整数序列中的每个元素作为下标,整数序列可以是列表或者数组。使用整数序列作为下标获得的数组不和原始数组共享数据空间。
b = x[np.array([3,3,-3,8])] #整数数组 a = x[[3,3,1,5]] #整数列表
当使用布尔数组(注意这种方式只对应于布尔数组,不能使用布尔列表)b作为下标存取数组x中的元素时,将收集数组x中所有在数组b中对应下标为True的元素