numpy常用方法

求两数组对应相同元素的概率
 # 求两数组对应相同元素的概率
x = np.array([0,1,3,1])   
OUT: array([0, 1, 3, 1])
y = np.array([1,2,3,1])  
OUT: array([1, 2, 3, 1])
x==y   
OUT: array([False, False,  True,  True])
np.mean(x==y)  
OUT: 0.5
np插入行、列
 # 插入一列1、行
X = np.c_[np.ones(m), X]
np数组判断、查找、替换、赋值
 # 判断、查找、替换、赋值
prob[prob >= 0.5] = 1
p[p == 0] = 10 # 替换0元素为10
y_logic = np.where(y==2, 1, 0) #  ==2时赋值1,否则赋值0
np.argwhere(pval == 1) # 返回等于1的数所在索引,返回至少是二维数组

p = np.argmax(Y, axis=1) # 找出每一行最大数所在的位置 axis=0列
p[p == 0] = 10 # 替换0元素为10
shape和size
 # y.size 和 y.shape
 # y.size 求数组所有元素个数
 # y.shape 返回数组的行和列数(m, n),
 # 其中y.shape[0]行数,y.shape[1]返回列数
分离样本,分离带标签的样本
 # 分离样本
def plotData(X, y):
    plt.figure()
    postive = X[y == 1]  # 分离正样本,要求y为一维数组
  negtive = X[y == 0]  # 分离负样本
  plt.scatter(postive[:, 0], postive[:, 1], marker='+', c='red', label='Admitted')  # 画出正样本
  plt.scatter(negtive[:, 0], negtive[:, 1], marker='o', c='blue', label='Not Admitted')  # 画出负样本
python广播(行齐算行,列齐算列,不齐报错)

在这里插入图片描述

用np的方法随机生成列表,元素值范围可任意指定
 # 随机生成列表
permutation = list(np.random.permutation(m)) # 随机生成有m个元素的python数组,范围0~m-1,然后转换成list
shuffled_X = X[:, permutation] # 按列表抽取样本
shuffled_Y = Y[:, permutation].reshape((1, m)) # 抽取对应标签
向下取整
 # 取整
math.floor() # 向下取整
np重复元素
 # np.tile()和np.repeat()
 # tile是按axis复制数组
area = array([[ 2, 12, 30]])
np.tile(area,[1,3])
OUT: array([[ 2, 12, 30,  2, 12, 30,  2, 12, 30]])
np.tile(area,[3,1])
OUT: 
array([[ 2, 12, 30],
       [ 2, 12, 30],
       [ 2, 12, 30]])
 # repeat按元素复制,逐元素复制
area
OUT: array([[ 2, 12, 30]])
np.repeat(area,2,axis=0) # 复制多行
OUT:
array([[ 2, 12, 30],
       [ 2, 12, 30]])
np.repeat(area,2,axis=1) # 
OUT: array([[ 2,  2, 12, 12, 30, 30]])
np.repeat(area,2) # 注意输出维度
Out[47]: array([ 2,  2, 12, 12, 30, 30])
python列表骚操作,列表每个元素对应的索引组成元组
list(enumerate(['ww','ee','rr']))
Out[63]: [(0, 'ww'), (1, 'ee'), (2, 'rr')]
列表转换成np数组
line = ['C:\\Python36\\PycharmProjects\\keras-yolo3-master/VOCdevkit/VOC2007/JPEGImages/00001.jpg',
 '18,133,118,289,0',
 '165,120,250,292,0',
 '116,182,166,292,1',
 '251,177,314,292,1',
 '311,118,400,292,0']
np.array([np.array(list(map(int,box.split(',')))) for box in line[1:]])
OUT:
array([[ 18, 133, 118, 289,   0],
       [165, 120, 250, 292,   0],
       [116, 182, 166, 292,   1],
       [251, 177, 314, 292,   1],
       [311, 118, 400, 292,   0]])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值