python之numpy
1、用np.r_[]与np.c_[]将数组按行与列连接
import numpy as np a=np.array([1,2,3]) b=np.array([4,5,6]) c=np.c_[a,b] #按行连接 d=np.r_[a,b] #按列连接 print(c) print(d) ''' 结果为: [[1 4] [2 5] [3 6]] [1 2 3 4 5 6] '''
2、用np.meshgrid()生成网格点坐标,可以用于等高线图
import numpy as np a = np.array([0, 1]) # 横坐标范围 b = np.array([2, 3, 4]) # 纵坐标范围 x, y = np.meshgrid(a, b) # 生成网格点坐标 print('x:',x) # 输出网格点的x坐标 print('y:',y) # 输出网格点的y坐标 '''
结果: x: [[0 1] [0 1] [0 1]] y: [[2 2] [3 3] [4 4]] '''
3、np.ravel()和np.flatten()将数组降为1维,区别是np.ravel()返回视图,np.flatten()返回一份拷贝。另外可以直接调用数组array类的方法array.ravel()和array.flatten()来达到效果。
import numpy as np a = np.array([[0, 1],[2,3]]) b=a.ravel() #调用类的方法 c=np.ravel(a) #调用函数 print('b:',b) print('c:',c) ''' 结果: b: [0 1 2 3] c: [0 1 2 3] '''
4、np.where(condition,x,y),用法1:设置参数x、y,若满足condition的元素替换为x,否则替换为y,作用于array的每一个元素;用法2:没有设置x、y,以array类型返回满足condition的元素在array中的位置。
import numpy as np x=np.arange(9) print('<4的元素替换为0,否则替换为0:',np.where(x<4,0,1)) print('以array返回<4的元素位置:',np.where(x<4)) ''' 结果: <4的元素替换为0,否则替换为0: [0 0 0 0 1 1 1 1 1] 以array返回<4的元素位置: (array([0, 1, 2, 3], dtype=int64),) '''