01-numpy简单入门

numpy入门

什么是numpy

numpy:number python,一个重要的python语言数学运算库,在数据分析,机器学习,科学运算,图像处理等方面有重要的作用。numpy让向量和矩阵的运算变得非常简单。

创建numpy数组

numpy的数组不同于普通的list数组,numpy的数组可以轻松的扩展到多个维度。在numpy中数组的名字叫ndarray(n个dimension的array)

1
np.array([1,2,3])

1569918796956

1
2
3
np.ones(3)
np.zeros(3)
np.random.random(3)

1569918824270

1
2
3
4
5
a = np.array([0, 1, 2, 3])
type(a)
a = np.array(0,1,2,3) #报错
a = np.array((0,1,2,3))
c = np.array([3, '4.5'])  # 数组的数据类型

创建1-6的数组

1
c = np.arange(6)

创建-2到1间隔为0.5的数组, 前开后闭

1
np.arange(-2, 1, 0.5)

把0-2的空间分割成5份,包含5

1
np.linspace(0, 2, 5)

二维0数组和1数组

1
2
np.ones([2, 3])
np.zeros([2, 3])

numpy对角单位矩阵

1
np.eye(2)

numpy斜对角矩阵

1
2
a = np.array([1, 2, 3])
d = np.diag(a)  # 2D的斜对角矩阵

numpy数组的属性

d的维度

1
d.ndim

d的形状

1
d.shape

d的元素个数

1
d.size

d的数据类型

1
d.dtype

numpy进阶

numpy数组的运算

1569918894270

  • 1569918975168

  • 减 乘 除

1569919021940

  • numpy数组乘以常量

1569919062042

  • 平方

data ** 2

  • 三角函数

np.sin(data)

  • 指数函数

np.exp(b)

  • 开平方

np.sqrt(a)

  • 布尔过滤

a = np.array([20,30,40,50]) a <= 35

numpy数组和list比较

1
2
3
4
5
6
7
a = [20,30,40,50] #创建一个list
b = list(range(2,6)) #创建另外一个list 从2到6

a + b # 两个list进行concat操作 [20,30,40,50,2,3,4,5]
a - b # 报错
a * 2 # a所在的list repetition2次 [20,30,40,50,20,30,40,50]
a / b # 没有这样的操作

numpy数组的索引

1569919091274

numpy数组的元素操作

1569919133859

numpy二维数组

1569919177285

1569919189751

1
b = np.array([[0, 1], [2, 3]]) 

numpy数组运算

1569919251069

1569919265883

numpy数组切片索引

1569919338272

numpy数据转置

1569919463521

numpy数据变形

1569919486189

1
2
3
4
5
c = np.array([1,2,3,4,5,6])
c.reshape(2,3)
c.reshape(3,2)
c.reshape(3,-1)
c.ravel() # 降成一维

numpy高维数据

1569919560147

1569919578545

1
2
d.ndim
d.shape

numpy数据维度应用场景

计算机如何表示图像

  1. 黑白照片

1569919642579

  1. 彩色照片

1569919658332