Python
Numpy知识总结
这里记录下numpy常用的一些操作,一些散乱的知识点。
数组和标量之间的运算
就是对数组进行批量的运算
import numpy as np
a = np.arange(15).reshape(3,5)
a
Out[3]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
a+2
Out[4]:
array([[ 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16]])
a+a
Out[5]:
array([[ 0, 2, 4, 6, 8],
[10, 12, 14, 16, 18],
[20, 22, 24, 26, 28]])
基本的索引和切片
上一篇,我们大概介绍过数组的切片,这里的切片操作都是原数组的一个视图,即原数组变化后,视图也会变化
a
Out[7]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
a[1]
Out[8]: array([5, 6, 7, 8, 9])
a[1][2]
Out[9]: 7
a[1:2]
Out[10]: array([[5, 6, 7, 8, 9]])
b=a[1:2]
a[1:2]=0
b
Out[13]: array([[0, 0, 0, 0, 0]])
a
Out[14]:
array([[ 0, 1, 2, 3, 4],
[ 0, 0, 0, 0, 0],
[10, 11, 12, 13, 14]])
花式索引
花式索引,就是利用整数数组进行索引。
x = np.empty((8,4))
for i in range(8):
x[i]=i
x
Out[18]:
array([[ 0., 0., 0., 0.],
[ 1., 1., 1., 1.],
[ 2., 2., 2., 2.],
...,
[ 5., 5., 5., 5.],
[ 6., 6., 6., 6.],
[ 7., 7., 7., 7.]])
x[[3,0,5]]
Out[19]:
array([[ 3., 3., 3., 3.],
[ 0., 0., 0., 0.],
[ 5., 5., 5., 5.]])
如果使用负数,会从末尾开始选取
x[[-1,-2]]
Out[20]:
array([[ 7., 7., 7., 7.],
[ 6., 6., 6., 6.]])
数组的转置
x
Out[21]:
array([[ 0., 0., 0., 0.],
[ 1., 1., 1., 1.],
[ 2., 2., 2., 2.],
...,
[ 5., 5., 5., 5.],
[ 6., 6., 6., 6.],
[ 7., 7., 7., 7.]])
x.T
Out[22]:
array([[ 0., 1., 2., ..., 5., 6., 7.],
[ 0., 1., 2., ..., 5., 6., 7.],
[ 0., 1., 2., ..., 5., 6., 7.],
[ 0., 1., 2., ..., 5., 6., 7.]])
上面的主要是轴对换,转置的话,看下这个例子(大学学的矩阵都忘了,得回顾下...)
一开始真迷糊了,找了个解释,明天再研究下这个函数