四 python之numpy

140 阅读3分钟

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1.Numpy介绍

NumPy ( Numerical Python )是一个开源的Python科学计算库,用于快速处理任意维度的数组。NumPy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。 NumPy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。

2.为什么要学NumPy

  • 1.快速
  • 2.方便
  • 3.科学计算的基础库

3.NumPy的优势

  • 对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多;
  • NumPy中的数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构,且其能够提升的性能是与数组中的元素成比例的;
  • NumPy的大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得NumPy比纯Python代码高效得多

4.NumPy 的Ndarray 对象

NumPy最重要的一个特点是其N维数组对象ndarray,它是一系列同类型数据的集合,以0下标为开始进行集合中元素的索引。ndarray对象是用于存放同类型元素的多维数组。

5.数组中的轴

1.什么是轴︰在numpy中可以理解为方向,使用0,1,2数字表示,对于一个一维数组,只有一个0轴, 对于2维数组( shape ( 2,2))有0轴和1轴, 对于3维数组( shape ( 2,2,3))有0,1,2轴 2.为什么要学习轴︰有了轴的概念后,我们计算会更加方便,比如计算一个2维数组的平均值,必须指定是计算哪个方向上面的数字的平均值。 总结︰在计算的时候可以想象成是每一个坐标轴,分别计算这个轴上面的每一个刻度上的值,或者在二维数组中记住0表示列1表示行.

6.数组的索引和切片

import numpy as np
a = np. arange(10)
#冒号分隔切片参数start:stop: step来进行切片操作
print(a[2 :7:2])#从索引2开始到索引7停止,间隔为2
#如果只放置一个参数,如[2],将返回与该索引相对应的单个元素
print(a[2],a)
# 如果为[2:],表示从该索引开始以后的所有项都将被提取
print(a[2:])

image.png

import numpy as np
t1 = np.arange(24).reshape(4,6)
print(t1)
print('*'*20)
print(t1[1])# 取一行(一行代表是一条数据,索引也是从0开始的)print(t1[1,:])#取一行
print(t1[1:])#取连续的多行print(t1[1:3,:])#取连续的多行
print(t1[[0,2,3]])#取不连续的多行print(t1[[O,2,3],:])#取不连续的多行
print(t1[:,1])#取一列
print(t1[:,1:])#连续的多列
print(t1[:,[0,2,3]])# 取不连续的多列print(t1[2,3])## 取某一个值,三行四列
print(t1[[0,1,1],[0,1,3]])#取多个不连续的值,[[行,行。。。],[列,列。。。]]

image.png