python 相关包学习(一)

函数

zip

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
 zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
 zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

cv2 : opencv-python

安装 pip install opencv-python

用于读取图片/展示图片/保存图片/添加文字/颜色转换/复制图片/翻转图片

cv2.imread(filepath,flags)

import cv2 
# 彩色,cv2.IMREAD_COLOR:默认参数,读入一副彩色图片
img = cv2.imread("1.jpg",cv2.IMREAD_COLOR)
img1 = cv2.imread("1.jpg",1)
#灰度读取,cv2.IMREAD_GRAYSCALE:读入灰度图片
img2=cv2.imread('picture.jpg',cv2.IMREAD_GRAYSCALE)
img3=cv2.imread('picture.jpg',0)
# 展示图片google conlab里要用
#from google.colab.patches import cv2_imshow
#cv2_imshow(img1)
cv2.imshow('cat',img2)
#添加文字
new_img = cv2.putText(
    img=img1,
    text="hello",  #文本
    org=(0, 50),    #字体开始写的左上角位置
    fontFace=cv2.FONT_HERSHEY_SIMPLEX, #字体
    fontScale=2, #字体大小
    color=(255, 0, 0),   #颜色
    thickness=2  #字体粗细
)
#翻转,使用函数cv2.flip(img,flipcode)翻转图像,flipcode控制翻转效果,复制图像。

# flipcode = 0:沿x轴翻转;flipcode > 0:沿y轴翻转;flipcode < 0:x,y轴同时翻转
new_img = cv2.flip(img1, flipCode=-1)

permutation()

np.random.permutation():随机排列序列。

import numpy as np
# 0~5乱排
b = np.random.permutation(5)
print(b)
# 列表乱排
a = np.random.permutation([1,2,3,4,5,6,7,8,9])
print(a)
# c是一个3X3的矩阵
c = np.arange(9).reshape((3,3))
print(c)
# 对这个这个3×3矩阵来说,只是对行进行随机排序。
d = np.random.permutation(c)
print(d)

np.pad()函数

在卷积神经网络中,为了避免因为卷积运算导致输出图像缩小和图像边缘信息丢失,常常采用图像边缘填充技术,即在图像四周边缘填充0,使得卷积运算后图像大小不会缩小,同时也不会丢失边缘和角落的信息。

pad(array, pad_width, mode, **kwargs)
返回值:数组

array——表示需要填充的数组;pad_width——表示每个轴(axis)边缘需要填充的数值数目。参数输入方式为:((before_1, after_1), …(before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值。

取值为:{sequence, array_like, int}

mode——表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式;

A = np.arange(95,99).reshape(2,2)    #原始输入数组
#print(A)
 array([[95, 96],
       [97, 98]])
# 开始填充,(3,2)表示在A的第[0]轴填充(二维数组中,0轴表示行),即在0轴前面填充3个宽度的0,比如数组A中的95,96两个元素前面各填充了3个0;在后面填充2个0,
#(2,3)表示在A的第[1]轴填充(二维数组中,1轴表示列),即在1轴前面填充2个宽度的0,后面填充3个宽度的0
#(我理解,(上,左),(下,右))
np.pad(A,((3,2),(2,3)),'constant',constant_values = (0,0))

[[ 0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0]
 [ 0  0 95 96  0  0  0]
 [ 0  0 97 98  0  0  0]
 [ 0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值