NumPy基本操作(二)

相关知识

numpy中的常用函数

 

1.打开终端模拟器,在命令行输入ipython notebook --ip='127.0.0.1',在浏览器中会打开jupyter notebook界面,点击New,在其下拉框中选择Python3.

2.新建一个ipyt文件,用于编写并执行代码。

切片与索引

numpy提供比常规Python序列更多的索引方法,除了整合和分片,数组可以被整数数组和布尔型数组索引。

3.一维数组索引:一维数组很简单,基本和列表一致。它们的区别在于数组切片是原始数组视图

导入numpy,创建一个一维范围为0到9的一维数组,索引下标为4的值,索引下标范围为3到6的元素值,不包含下标6。

反切片操作

创建一个数组a,对a进行反向切片操作

间隔取值

取数组a前5个元素

4.二维数组索引:二维数组中,各索引位置上的元素不再是标量,而是一维数组。

创建一个二维数组arr1,索引第0行,即下标为0的元素

索引第1行第2列即下标为[1,2]的元素。

5.多维数组索引,多维数组里,单个索引值返回的是一个纬度低一点的数组。

创建一个6维数组arr2。

取得arr2数组中第2行元素

取得arr2数组中第3列元素

取arr2数组中行下标为1到3,列下标为2到3的数组。

取arr2数组中行列下标步长为2的元素

6.利用整数数组进行索引:新建两个数组a,i,使用数组i的值作为下标对数组a进行索引。

7.当被索引数组a是多维的时,每一个唯一的索引数列指向a的对应行数。

8.通过两个数组i,j作为下标对数组a进行索引,这时a[i,j]为数组i和数组j相同位置的对应数值两两组成一对索引,然后用这对索引在数组a中进行取值,必须保证数组i与数组j的维数相同。

9.通过argmax方法索引数组中最大元素的索引,搜索下面sin值的最大索引,这里四舍五入后值的最大索引。

10.布尔值索引指的是一个由布尔值组成的数组可以作为一个数组的索引,返回的数据为True值对应位置的值

通过布尔数组索引,创建加一个数组a,使用a>4得到的布尔型数组b对数组a进行索引,取满足b数组中为True条件时,数组a的值。

11.由上面的操作可以看出,数组切片是原始数组的视图,但是任何修改都会直接反映到原数组上:下面是对数组a本身进行修改,将满足b为True条件a的值改为0。

12.通过布尔来索引的方法更近似于整数索引;对数组的每个维度我们给一个一维布尔数组来选择我们想要的切片。

注意一维数组的长度必须和你想要切片的维度或轴的长度一致,在之前的例子中,b1是一个秩为1长度为三的数组(a的行数),b2(长度为4)与a的第二秩(列)相一致。

条件查询

13.创建a,b数组,使用take()函数,根据b中元素作为索引,查找a中元素的值。

14.创建数组x,使用np.argwhere函数,查找x大于1的元素,返回数组x的下标和元素个数。

15.使用np.extract函数,查找x大于2的元素,返回满足条件的数组元素。

16.使用np.where函数,查找x大于2的元素,返回满足条件的数组元素的索引值。

17.ix_ 函数可以合并不同的向量来获得多个元组的结果,例如,如果你想要用所有向量a、b和c元素组成的三元组来计算 a+b*c :

 

 

 

数组组合

水平组合(np.hstack(),np.concatenate(axis=1)):

18.创建一个数组a,再将a每个值乘以2构成数组b,

19.使用np.hstack()函数对数组a,b进行水平组合.

20.使用np.concatenate(axis=1)函数对数组a,b进行水平组合.

垂直组合(np.vstack(),np.concatenate(axis=0))

21.使用np.vstack()函数对数组a,b进行垂直组合.

22.使用np.concatenate(axis=0)函数对数组a,b进行垂直组合.

深度组合:沿着纵轴方向组合(np.dstack())

23.使用np.dstack()函数对数组a,b进行深度组合。

列组合column_stack():一维数组:按列方向组合,二维数组:同hstack一样

24.使用column_stack()函数对数组a,b进行列组合.

行组合row_stack():一维数组:按行方向组合,二维数组:和vstack一样

25.使用row_stack()函数对数组a,b进行行组合.

数组分割

26.创建一个数组a,再将a每个值乘以2构成数组b,

27.水平分割:使用hsplit()函数,以3对数组a进行水平分割。

28.水平分割:调用split函数并指定参数axis=1,以3对数组a进行垂直分割。.

29.垂直分割:使用vsplit()函数,以3对数组a进行垂直分割。

30.垂直分割:调用split函数并指定参数axis=0,以3对数组a进行垂直分割。.

31.使用tolist()函数将数组,转变成列表。创建一个数组a,将数组a使用tolist函数转变成列表。

通用函数:

32.创建一维数组x,使用np.sin函数对x中所有元素求正弦值

33.创建二维数组b,使用np.cos函数对b数组中所有元素求余弦值

34.使用np.round函数,对上面余弦结果数组元素进行四舍五入。

35.使用numpy中的random.rand函数创建包含10个随机数的数组。

36.使用np.floor函数对所有元素向下取整。

37.使用np.ceil函数对所有元素向上取整。

38.使用np.absolute函数对-3取绝对值运算

39.使用np.absolute函数,对3+4j模运算

40.使用isnan函数,判断是否为空

41.使用np.log2函数对8进行对数运算

42.使用np.sqrt函数对range(10)进行平方根运算

43.创建一个数组a,使用np.mean函数求数组a的均值

44.使用np.average()函数,求range(1,5)的加权weights=range(4,0,-1)的平均值。

45.创建一个数组a,使用np.var()函数,求数组a的方差值。

46.创建一个数组a,使用np.std()函数,求数组a的标准差值。

47.点积,创建两个数组a,b,计算两个数组的线性组合,一维上是对应元素相乘,多维可将a*b视为矩阵乘法(a.dot向量积)

48.创建一个二维数组c,c数组的每行与a数组计算内积。

a数组与c数组的每列计算内积。

猜你喜欢

转载自blog.csdn.net/ITYTI/article/details/86162218