• 找出numpy矩阵中的不同元素
  • 屏蔽运行警告
  • 按照某一行(或列)升序排序
  • 按照某一行(或列)降序排序
  • 列表推导式
  • 字典推导式
  • zip与enumerate用法
  • os.system函数将字符串转化成命令在服务器上运行
  • 函数参数中会有冒号,有的函数后面会跟着一个箭头,作何解释
  • 在arr数组上依次取出3个数据
  • list的复制、浅拷贝和深拷贝
  • 格式化字符串f-string概览
  • 删除指定目录下的文件和文件夹
  • 将指定目录下的文件复制到另一个目录
  • 断言函数assert用法
  • python中__len__使得类表现得像一个list
  • 从列表中指定位置取元素并等间距取出来
  • Python三目运算符
  • ==、is和not is、in和not in区别
  • id()、dir、help用途
  • python之dict(或对象)与json之间转化
  • python读取、写入和更新xml文件
  • 实例方法、类方法和静态方法区别于作用(比较好的解释)
  • 创建多个连续编号的目录


找出numpy矩阵中的不同元素

# array转数组转list转set
arr = np.array([1,1,2,3,3,3,3])
print(set(arr.flatten().tolist()))

屏蔽运行警告

os.environ["TF_CPP_MIN_LOG_LEVEL"] = '1' # 默认,显示所有信息 
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2' # 只显示 warning 和 Error 
os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3' # 只显示 Error

按照某一行(或列)升序排序

mat1 = np.array([[2, 3, 5, 3],[6, 3, 5, 2]])
t = np.argsort(mat[1, :])
mat2 = mat[:, t[::]]  # 按照第二行升序排序

按照某一行(或列)降序排序

mat1 = np.array([[2, 3, 5, 3],[6, 3, 5, 2]])
t = np.argsort(mat[1, :])
mat2 = mat[:, t[::-1]]   # 按照第二行降序排序

列表推导式

num1 = [1,1,2,2,5,3]
num2 = [elem for elem in num1]
num3 = [elem for elem in num1 if elem==2]
num4 = [elem if elem==1 else elem-10 for elem in num1]

字典推导式

dict1 = {"a":1, "b":2, "c":3}
dict2 = {k:v for k,v in dict1.items() if k=="a" or k=="b"}
print(dict1)
print(dict2)

zip与enumerate用法

np.random.seed(666)
y1 = np.random.randint(10, 100, 50)
y2 = np.random.normal(size=(50,))
for elem1, elem2 in zip(y1, y2):
    print("elem1:", elem1, "elem2:", elem2)
for idx, elem3 in enumerate(y1):
    print("idx:", idx, "elem3:", elem3)

os.system函数将字符串转化成命令在服务器上运行

ml = "touch 1.txt"
os.system(ml)
os.system('cd /usr/local && mkdir aaa.txt')

函数参数中会有冒号,有的函数后面会跟着一个箭头,作何解释

函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型
函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型
说明:num1和num2也可以是str类型

def twoSum(num1: int, num2: int=100) -> int:
    sum = num1 + num2
    return sum

在arr数组上依次取出3个数据

import numpy as np
arr = np.arange(21)
batchsize = 3  # 每次取三个数据
for start, end in zip(range(0, len(arr), batchsize), range(batchsize, len(arr), batchsize)):
    batch = arr[start:end]
    print(batch)

list的复制、浅拷贝和深拷贝

在用Python写代码的时候往往会遇到真复制和假复制的问题,真复制就是创建一个新的实例(instance),而假复制就是把原对象的引用赋给了新的标志符。判断是不是真复制可以使用id()这个函数。

当然,复制可以使用import copy,然后copy.copy(object),copy.deepcopy(object)来解决。通常意义下copy和deepcopy的作用都是深复制,不放心的话可以使用id()或者is来判断一下。

格式化字符串f-string概览


list增、删、改、查、排序和统计
排序函数sort 、sorted 、argsort

numpy的增、删、改、查、排序和统计

numpy各种生成随机数的方法和Python生成不重复的随机数

删除指定目录下的文件和文件夹

import os
import shutil
def delete_file(target_dir):
    """
    删除指定目录下的所有文件和文件夹
    :param filepath: 路径(str)
    """
    del_list = os.listdir(target_dir)  # 当前目录下文件和文件夹
    for f in del_list:
        fp = os.path.join(target_dir, f)
        if os.path.isfile(fp):  #   # file_path是否是文件
            os.remove(fp)
        elif os.path.isdir(fp):  # file_path是否是目录
            shutil.rmtree(fp)
target_dir = "./"
delete_file(target_dir)

将指定目录下的文件复制到另一个目录

import os
import shutil
def copy_files_to_directoy(src_dir,dst_dir,):
    files = os.listdir(src_dir)
    for f in files:
        src_file = src_dir + f
        dst_file = dst_dir + f
        shutil.copy(src_file, dst_file)
src_dir = "./src_dir/"
dst_dir = "./dst_dir/"

断言函数assert用法

断言函数用于对一个bool表达式进行断言,如果该bool表达式为True,该程序继续执行,否则程序会引发AssertionError错误

assert set(gt_image.tolist()) == {0, 2}, "pixel values are not {0,1}"
AssertionError: pixel values are not {0,1}

python中__len__使得类表现得像一个list

如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。
例如,我们写一个 Students 类,把名字传进去:

class Students(object):
    def __init__(self, *args):
        self.names = args

    def __len__(self):
        return len(self.names)
# 只要正确实现了__len__()方法,就可以用len()函数返回Students实例的“长度”:
ss = Students('Bob', 'Alice', 'Tim')
print(len(ss))  # 3

从列表中指定位置取元素并等间距取出来

li = [1,2,3,4,1,1,1,1,1,1,1,1][slice(5, 10, 3)]
lili = list(range(len(li)))[slice(5, 10, 3)]

Python三目运算符

True_statements if expression else False_statements

==、is和not is、in和not in区别

==:比较两个变量的值
is和not is :用于判断两个变量是否引用同一个对象
in和not in:用于判断某个成员是否位于序列中

id()、dir、help用途

id()函数:查看变量所引用对象的内存地址
dir():列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)
help(): 查看某个函数或方法的帮助文档

python之dict(或对象)与json之间转化

 

python读取、写入和更新xml文件

实例方法、类方法和静态方法区别于作用(比较好的解释)


创建多个连续编号的目录

import os 
root = './'
for i in range(1, 11):
    os.mkdir(root+ f'{i:02d}')