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),)
'''

 

posted @ 2019-09-23 20:19  我不是高斯分布  阅读(557)  评论(0编辑  收藏  举报