numpy手册(2)-常用操作杂记

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.]])

上面的主要是轴对换,转置的话,看下这个例子(大学学的矩阵都忘了,得回顾下...)

numpy手册(2)-常用操作杂记_第1张图片
转置

一开始真迷糊了,找了个解释,明天再研究下这个函数


numpy手册(2)-常用操作杂记_第2张图片
转置-解释

你可能感兴趣的:(numpy手册(2)-常用操作杂记)