numpy学习笔记(2)
2017-02-09 15:28
274 查看
五 结构数组
numpy 可以像c语言中用关键字struct一样定义结构类型person = dtype({'names':['name','age','weigth'], 'formats':['S16', 'i', 'f']}, align = True)
a = array([('Tom', 20, 60),('Green', 30, 50)], dtype = person)我们首先通过dtype函数来创建结构类型对象,函数第一个参数是一个字典,其中第一个字段表示变量名,第二个字段表示变量类型,变量类型可以参考有关书籍,函数第二个参数是选择是否进行内存对齐,如果内存对齐,以便于与c语言中的结构类型进行转换
六 存取元素
1.索引和切片数组的索引和切片和python中的标准方法相同
>>> a = arange(10)
>>> a[5] 下标索引
5
>>> a[3:5] 切片索引
array([3, 4])
>>> a[:5] 省略,相当于a[0:5]
array([0, 1, 2, 3, 4])
>>> a[:-1] 省略,相当于a[0:-1]
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>> a[1:-1:2] 最后一个相当于步长
array([1, 3, 5, 7])
>>> a[::-1]
array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
>>> a[5:1:-2] 步长为负数时,开始下标必须大于结束下标
array([5, 3])
numpy中通过下标来获取的数组是原数组的一个视图,改变获取的数组原数组也会改变
2.使用序列来存取数组
当使用整数序列对数组元素进行存取时,将使用整数序列中的每个元素作为下标,整数序列可以是列表或者数组。
>>> a = arange(10,1,-1)
>>> a
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
>>> b = a[array([0,-1])] 使用数组来取数组
>>> b
array([10, 2])
>>> c = a[[0,1]] 使用列表来取数组
>>> c
array([10, 9])
>>> c[0]=1
>>> a
array([10, 9, 8, 7, 6, 5, 4, 3, 2])
通过序列取出的数组和原数组不占用相同的存储空间,改变取出的数组,原数组不改变
3.使用布尔数组存取数组
使用布尔数组作为下标存取元素,将下标为True的元素取出。取出的数组和原数组不占用相同的存储空间,并且这种方式不适用于布尔列表
>>> a=arange(3)
>>> a
array([0, 1, 2])
>>> b=array([True,False,True])
>>> c=a[b]
>>> c
array([0, 2])
>>> c=a>1
>>> c
array([False, False, True], dtype=bool)
>>> a[c]
array([2])
七 ufunc运算
numpy提供常用的数学函数,如sin,
cos和
exp。在NumPy里这些函数作用按数组的元素运算,产生一个数组作为输出。
import numpy as np
a =np.array([1,2,3])
b =np.array([1,2,3])
c = np.add(a,b)
np.add(a,b,a) 相当于 a += b
print a
print c
[2 4 6]
[2 4 6]
此外还有subtract(-),multiply(*)等函数
相关文章推荐
- numpy学习笔记
- [新手-数据分析师]numpy学习笔记(3rd)
- numpy学习笔记-唯一化
- NumPy学习笔记(2)--Array数组和矩阵基本运算
- numpy学习笔记(1)---几个重要的ndarray对象属性
- [新手-数据分析师]numpy学习笔记(5th)
- numpy学习笔记
- Python: Numpy学习笔记
- Numpy学习笔记5-数组遍历方法
- Numpy学习笔记
- numpy学习笔记一(n维数组及元素级数组函数)
- [Python] Numpy学习笔记(一)
- numpy学习笔记1---python学习笔记32
- Numpy学习笔记——矩阵和通用函数
- [Python] Numpy学习笔记(二)
- NumPy学习笔记
- Numpy学习笔记——NumPy模块
- NumPy学习笔记(一)
- numpy学习笔记(3)
- Numpy学习笔记