This commit is contained in:
guanjihuan 2024-03-29 12:31:49 +08:00
parent 6637dbdd36
commit a58118d3fb
7 changed files with 89 additions and 30 deletions

View File

@ -2,22 +2,23 @@ from multiprocessing import Process
import time import time
def f(name): def f(name):
time.sleep(5) for i in range(5):
print('Hello', name) time.sleep(1)
print('Hello', name, i)
if __name__ == '__main__': if __name__ == '__main__':
start_time = time.time() start_time = time.time()
p1 = Process(target=f, args=('Bob',)) f('A')
p2 = Process(target=f, args=('Alice',)) f('B')
end_time = time.time()
print(end_time - start_time, '\n')
start_time = time.time()
p1 = Process(target=f, args=('A',))
p2 = Process(target=f, args=('B',))
p1.start() p1.start()
p2.start() p2.start()
p1.join() p1.join()
p2.join() p2.join()
end_time = time.time() end_time = time.time()
print(end_time - start_time, '\n')
start_time = time.time()
f('Bob')
f('Alice')
end_time = time.time()
print(end_time - start_time) print(end_time - start_time)

View File

@ -1,21 +1,26 @@
import numpy as np import numpy as np
np.zeros((2, 3)) # 零矩阵 print(np.zeros((2, 3)), '\n') # 零矩阵
np.identity(3) # 单位矩阵 print(np.identity(3), '\n') # 单位矩阵
np.diag([1, 3, 5]) # 对角矩阵 print(np.diag([1, 3, 5]), '\n') # 对角矩阵
matrix1 = np.array([[3, 5+1j], [2, 7]]) # numpy矩阵 matrix1 = np.array([[3, 5+1j], [2, 7]]) # numpy矩阵
matrix1.shape # 矩阵的维度 print(matrix1, '\n')
matrix1.transpose() # 矩阵转置 print(matrix1.shape, '\n') # 矩阵的维度
matrix1.conj() # 矩阵所有元素共轭 print(matrix1.transpose(), '\n') # 矩阵转置
np.conj(matrix1) # 矩阵所有元素共轭(同上) print(matrix1.conj(), '\n') # 矩阵所有元素共轭
np.arange(1, 5, 1) # 数列(左闭右开) print(np.conj(matrix1), '\n') # 矩阵所有元素共轭(同上)
np.linspace(-2, 2, 5) # 数列(左闭右闭) print(np.arange(1, 5, 1), '\n') # 数列(左闭右开)
np.random.uniform(-2, 2) # 随机数 print(np.linspace(-2, 2, 5), '\n') # 数列(左闭右闭)
np.random.randint(0, 2) # 随机整数(左闭右开) print(np.random.uniform(-2, 2), '\n') # 随机数
np.sort([1, 7, 0, 3]) # 排列 print(np.random.randint(0, 2), '\n') # 随机整数(左闭右开)
np.argsort([1, 7, 0, 3]) # 排列索引 print(np.sort([1, 7, 0, 3]), '\n') # 排列
np.linalg.det(matrix1) # 行列式 print(np.argsort([1, 7, 0, 3]), '\n') # 排列索引
print(np.linalg.det(matrix1), '\n') # 行列式
matrix2 = np.linalg.inv(matrix1) # 求逆 matrix2 = np.linalg.inv(matrix1) # 求逆
np.matmul(matrix1, matrix2) # 矩阵乘积 print(matrix2, '\n')
np.dot(matrix1, matrix2) # 矩阵乘积(同上) print(np.matmul(matrix1, matrix2), '\n') # 矩阵乘积
print(np.dot(matrix1, matrix2), '\n') # 矩阵乘积(同上)
eigenvalue, eigenvector = np.linalg.eig(matrix1) # 求本征值,本征向量 eigenvalue, eigenvector = np.linalg.eig(matrix1) # 求本征值,本征向量
print(eigenvalue, '\n')
print(eigenvector, '\n')
matrix3 = np.append(matrix1, matrix2, axis=0) # 增加数组元素或者矩阵的行 matrix3 = np.append(matrix1, matrix2, axis=0) # 增加数组元素或者矩阵的行
print(matrix3)

View File

@ -0,0 +1,7 @@
import pickle
data = [1, 2, 3]
with open('a.txt', 'wb') as f:
pickle.dump(data, f)
with open('a.txt', 'rb') as f:
data_load = pickle.load(f)
print(data_load)

View File

@ -0,0 +1,9 @@
a = [1, 2] # 数组
print(a)
print(len(a)) # 数组长度
a.append(3) # 增加元素
print(a)
b = range(5) # 数列从0开始
print(b)
for i0 in b:
print(i0)

View File

@ -0,0 +1,23 @@
import re
# 正则表达式:匹配任意字符(.);零次或多次(*);尽可能少地匹配(?
# re.match 指匹配起始位置的模式,如果起始位置不匹配的话,返回 None
string = 'this_is_a_test_abc_123'
result = re.match(pattern='ab(.*?)23', string=string)
print(result)
print()
result = re.match(pattern='this(.*?)abc', string=string)
print(result.group(0))
print(result.group(1))
print()
# re.search 扫描整个字符串并返回第一个成功的匹配。
string = 'this_is_a_test_abc_123'
result = re.search(pattern='ab(.*?)23', string=string)
print(result.group(0))
print(result.group(1))
print()
result = re.search(pattern='this(.*?)abc', string=string)
print(result.group(0))
print(result.group(1))

View File

@ -6,16 +6,23 @@ def print_numbers(x):
time.sleep(1) time.sleep(1)
print(f"Thread {x}: {i}") print(f"Thread {x}: {i}")
# 串行测试
start_time = time.time()
print_numbers('A')
print_numbers('B')
end_time = time.time()
print(end_time - start_time, '\n')
# 创建两个线程 # 创建两个线程
thread1 = threading.Thread(target=print_numbers, args=('A')) thread1 = threading.Thread(target=print_numbers, args=('A'))
thread2 = threading.Thread(target=print_numbers, args=('B')) thread2 = threading.Thread(target=print_numbers, args=('B'))
start_time = time.time()
# 启动线程 # 启动线程
thread1.start() thread1.start()
thread2.start() thread2.start()
# 等待两个线程完成 # 等待两个线程完成
thread1.join() thread1.join()
thread2.join() thread2.join()
end_time = time.time()
print("Both threads have finished.") print(end_time - start_time)

View File

@ -0,0 +1,7 @@
from tqdm import tqdm
import time
import numpy as np
for i in tqdm(np.arange(1, 10)):
time.sleep(0.1)
print('', i)