python是完全面向对象的语言,设计哲学是优雅,明确,简单;所以嘛,人生苦短,何不用python。
一.简单介绍
1. 数据类型:数字型数据类型和非数字型数据类型,使用type()可以查看变量类型,也可分为可变类型(列表,字典)和不可变类型(数字,字符串,元组)
数字型数据类型:int, float
非数字型数据类型:字符串,列表(list),元组(tuple,元素不能修改),字典(dic,无序的对象集合)
元组与列表进行转换:list(元组) # list函数将元组转为列表
tuple(列表) # tuple函数将列表转为元组
2. 切片:使用索引访问一定范围内的元素,除了字典无序外,其余数据类型可切片
3. 引用:变量中记录地址,即为引用;id()函数可以查看变量中保存数据所在的内存地址
二.基本语法及编程技巧
1. 获取numpy数组的最大值以及其索引
max_data = np.max(a) # 获取a中的最大值
np.where(a==max_data)) # 获取a中最大值的索引,返回值依次为行号,列号等
2. 深拷贝
将numpy中的元素赋给另一个变量,在该变量中修改值,numpy中的值也会发生变化,因此为了避免这种情况,可以使用深拷贝
a = np.array([1,2,3])
b = a[0].copy() # 深拷贝
3. 定义一个与已知numpy数据shape一样的全零数组
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.zeros_like(a) # 创建和a的shape一样的全零numpy数据
4. 根据数据a中的元素情况,对对应的数据b中对应位置的元素进行复制操作
label_slice1 = np.load(label_slice1_path)
pre = np.load(pred_path)
pre_slice1 = pre[102, :, :].copy()
intersection1 = np.zeros_like(label_slice1)
intersection1[(label_slice1 == 1) & (label_slice1 == pre_slice1)] = 255
5. 字符串的逆序
num_str[::-1] # 方式1
num_str[-1::-1] # 方式2
6. 交换两个变量值
a, b = b, a # 不用借助额外变量
7. 身份运算符(is, is not) 和 == 的区别
is : 用于比较两个对象的内存地址是否一致,即用于判断是否是对同一个对象的引用
==:用于判断引用的变量的值是否相等
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True
print(a is b) # False
8. 生成给定shape的全零或者全1的数组
a = np.ones((2,3))
b = np.zeros((2,3))
c = np.full((2,3), np.pi)
9. sorted中key的lambda匿名函数的使用方法(根据b列表的元素对a列表进行排序)
a = [10, 9, 8, 7, 6]
b = [5, 4, 3, 2, 1]
# 根据b列表的排序顺序对a列表进行相应的排序
new_a = sorted(a, key=lambda x: b(a.index(x))) # [6, 7, 8, 9, 10]
10. 优先队列
from queue import PriorityQueue
q = PriorityQueue()
q.put([10,2,3]) # 根据put的元素进行由小到大的排序, 根据列表中的第一个元素排序
q.put([1,20,30])
print(q.get()) # [1, 20, 30]
print(q.get()) # [10, 2, 3]
11. set()类型
a = [1, 2, 3]
b = [4, 5, 6]
print(set(a) & set(b) == set()) # True
12. 上取整
import math
a = 5.4
print(math.ceil(a)) # 6
13. 通过for循环直接修改元素为列表的列表
a = [[1, 2, 3], [4, 5, 6]]
for i in a: # i是a中元素的引用
i[0] = 100
print(a) # [[100, 2, 3], [100, 5, 6]]
# 注意以下异同
a = [1, 2, 3]
for i in a: # 不能修改a中元素值, 因为a中元素为不可变类型
i = 100
print(a) # [1, 2, 3]
三.python中导入模块和包的路径问题:https://www.cnblogs.com/ydf0509/p/8298551.html