import time
time.strftime('%Y %m %d %X')
'2023 09 13 16:56:33'
# 结构化时间转换为格式化时间
struct_time = time.localtime()
print(time.strftime('%Y-%m-%d',struct_time))
2023-09-13
# 将结构化时间转化为时间戳
timestep = time.mktime(struct_time)
print(timestep)
1694595393.0
# 格式化时间转化为结构化时间
format_time = time.strftime('%Y-%m-%d')
time.strptime(format_time,'%Y-%m-%d')
time.struct_time(tm_year=2023, tm_mon=9, tm_mday=13, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=256, tm_isdst=-1)
# 时间戳转化为结构化时间
time_flow = time.time()
print(time.localtime(time_flow))
# time.localtime(secs=) 传进去的参数是秒
time.struct_time(tm_year=2023, tm_mon=9, tm_mday=13, tm_hour=16, tm_min=56, tm_sec=33, tm_wday=2, tm_yday=256, tm_isdst=0)
# 睡眠:
time.sleep(3)
# datetime 模块(掌握)
import datetime
now = datetime.datetime.now()
now = str(now)
print(now.split()[0])
print(now.split()[1])
2023-09-13
16:56:36.903949
now = datetime.datetime.now()
print(now + datetime.timedelta(3)) #默认为天(增加天)
2023-09-16 16:56:36.920904
# 等同于
print(now + datetime.timedelta(days=3)) # 无法加年和月
print(now + datetime.timedelta(hours=3))
print(now + datetime.timedelta(minutes=30))
print(now + datetime.timedelta(seconds=30))
2023-09-16 16:56:36.920904
2023-09-13 19:56:36.920904
2023-09-13 17:26:36.920904
2023-09-13 16:57:06.920904
# random 模块(掌握)
# 随机数
import random
# print(random.random())# 0~1
# print(random.randint(1,6)) # 整数
# print(random.uniform(1,3))
# print(random.randrange(2,6))# 打印[n,m)的整数
# print(random.choice([1,'a',2,'b']))# 从容器中选择一个
# # print(random.choice([1000,10,2,3,4]))# 例如
res = random.choice([1000,10,2,3,4])
while True:
if res == 1000:
print('再来一次')
else:
print(f'恭喜您获得{res}')
break
break
恭喜您获得2
# 从容器中随机选择多个
print(random.sample([1,'a',2,'b'],2))
[1, 'b']
# 打乱容器
lis = [1,2,3,4]
random.shuffle(lis)
print(lis)
[2, 1, 4, 3]
# nvshen_lis = ['高圆圆','刘亦菲']
# choice = int(input('请输入您的选择》》》》'))
# count =0
# while count < 3:
# count += 1
# if choice == 0:
# print(random.sample(nvshen_lis))
# else:
# print('大傻逼,你还想要???')
# break
# logging模块 日志
import logging
# info(没有任何问题) -> debug -->warning(可以去做也可以不去做)-->error(必须去做)-->critical(崩溃)
# 消费
name = input('name->>>')
total_price = input('total_price')
# logging.info('')
# logging.critical()
# logging.debug()
# logging.warning()
# logging.error()
import numpy as np
# int/float/str/dict/list/tuple/set
# list 一维数组
lis = [1,2,3]
lis # 只有一行
[1, 2, 3]
np.array(lis) # 定义一维数组
array([1, 2, 3])
# 二维数组 装两个列表 小列表装一维数组(用的最多的)
pp = np.array([[1,2,3],[4,5,6]])
# 三维 三个列表:大列表装二维数组
ll = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[8,8,8],[9,9,9]]])
# list:索引、切片、长度、成员运算、for循环.....
区别
1.np.array是多维的,list是一维的
2.list对一维数组做一些操作,numpy其实就是对多维做操作
获取多维数组的行和列
pp.shape
(2, 3)
- 中括号加索引,行和列用逗号隔开
pp[1,2]
6
pp
array([[1, 2, 3],
[4, 5, 6]])
pp[0,:]
array([1, 2, 3])
pp[:,0]
array([1, 4])
高级
- 有一个多维数组存储的是人的年龄,表格里有200岁以上的年龄(没用的)
ppp = np.array(
[[1000,45,56],[55,1000,56],
[1000,45,65],[45,55,85],
[55,65,75],[88,99,999]
])
ppp
array([[1000, 45, 56],
[ 55, 1000, 56],
[1000, 45, 65],
[ 45, 55, 85],
[ 55, 65, 75],
[ 88, 99, 999]])
ppp > 998
array([[ True, False, False],
[False, True, False],
[ True, False, False],
[False, False, False],
[False, False, False],
[False, False, True]])
ppp[ppp>100]
array([1000, 1000, 1000, 999])
# 多维数组的元素替换
# 例如
lis[0] = 0
lis
[0, 2, 3]
ppp[ppp>100] = 55
ppp
array([[55, 45, 56],
[55, 55, 56],
[55, 45, 65],
[45, 55, 85],
[55, 65, 75],
[88, 99, 55]])
# 合并
new_ppp = np.vstack((lis,ppp))
new_ppp
# 垂直合并
array([[ 0, 2, 3],
[55, 45, 56],
[55, 55, 56],
[55, 45, 65],
[45, 55, 85],
[55, 65, 75],
[88, 99, 55]])
# 水平合并(维度必须相同)
nn = np.hstack([ppp,ppp])
nn
array([[55, 45, 56, 55, 45, 56],
[55, 55, 56, 55, 55, 56],
[55, 45, 65, 55, 45, 65],
[45, 55, 85, 45, 55, 85],
[55, 65, 75, 55, 65, 75],
[88, 99, 55, 88, 99, 55]])
nn = np.hstack((ppp,ppp))
nn
array([[55, 45, 56, 55, 45, 56],
[55, 55, 56, 55, 55, 56],
[55, 45, 65, 55, 45, 65],
[45, 55, 85, 45, 55, 85],
[55, 65, 75, 55, 65, 75],
[88, 99, 55, 88, 99, 55]])
长春 = np.concatenate((ppp,ppp),axis=0) # 默认垂直 axis=0 为列
榆树 = np.concatenate((ppp,ppp),axis=1)# axis=1 为行
长春
榆树
array([[55, 45, 56, 55, 45, 56],
[55, 55, 56, 55, 55, 56],
[55, 45, 65, 55, 45, 65],
[45, 55, 85, 45, 55, 85],
[55, 65, 75, 55, 65, 75],
[88, 99, 55, 88, 99, 55]])
长春
array([[55, 45, 56],
[55, 55, 56],
[55, 45, 65],
[45, 55, 85],
[55, 65, 75],
[88, 99, 55],
[55, 45, 56],
[55, 55, 56],
[55, 45, 65],
[45, 55, 85],
[55, 65, 75],
[88, 99, 55]])
在numpy中,为了统一做处理,只要 有axis参数的,axis=0就是列,axis=1就是行
# 通过函数方法创建多维数组
# ones、zeros
np.ones((3,4))
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
np.zeros((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
np.eye(5)
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
np.zeros((3,4,5)) # 5控制(列)1维,4,5控制2维,3,4,5控制三维
array([[[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.],
[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.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]]])
np.zeros((3,4))
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
np.zeros((4,3,4))
array([[[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., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]],
[[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]])
+ 两个矩阵对应元素相加
- 两个距阵对应元素相减
* 两个矩阵对应元素相乘
/ 两个矩阵对应元素相除,如果都是整数则取商
% 两个矩阵对应元素相除后取余数
**n 单个矩阵每个元素都取n次方,如**2:每个元素都取平方天
ppp2 = ppp+ppp
list2= np.zeros((3,4,5))
list2
array([[[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.],
[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.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]]])
list1 = np.zeros((3,4,5))
if list1.shape == list2.shape :
print('ok')
else:
print('sb')
ok
np.dot(ppp,ppp2.T)
array([[16372, 17272, 17380, 19420, 20300, 24750],
[17272, 18372, 18280, 20520, 21600, 26730],
[17380, 18280, 18550, 20950, 21650, 25740],
[19420, 20520, 20950, 24550, 24850, 28160],
[20300, 21600, 21650, 24850, 25750, 30800],
[24750, 26730, 25740, 28160, 30800, 41140]])
# 求逆
np.linalg.inv(np.dot(ppp,ppp2.T))
array([[ 3.83114753e+11, 2.82232782e+11, -4.94633977e+11,
1.78725324e+11, -2.31507143e+11, -5.33976409e+10],
[-3.31053361e+11, 7.72648056e+11, -2.39202973e+10,
-2.08471005e+11, 7.48273782e+10, -2.01209119e+11],
[-2.22334930e+11, -6.15128139e+11, 4.87447766e+11,
-7.97300855e+10, 1.89949530e+11, 1.40812175e+11],
[-2.59373038e+11, 2.12744318e+11, 1.55577132e+11,
5.43809482e+10, -1.68593723e+11, 9.46988059e+09],
[ 5.03015905e+11, -3.95651248e+11, -3.09238179e+11,
-1.95253866e+08, 1.76240334e+11, 1.61205877e+10],
[-7.53300400e+10, -1.36353115e+11, 1.33158942e+11,
4.07359489e+10, -4.47311126e+10, 5.62036959e+10]])
# 最大值,最小值
ppp.max()
99
ppp.min()
45
# numpy生成随机数
# 随机种子,固定随机数,让他不随机
seed = np.random.seed(3)
np.random.rand(3,4)
array([[0.5507979 , 0.70814782, 0.29090474, 0.51082761],
[0.89294695, 0.89629309, 0.12558531, 0.20724288],
[0.0514672 , 0.44080984, 0.02987621, 0.45683322]])
re = np.random.RandomState(1)
re.rand(3,4)
array([[4.17022005e-01, 7.20324493e-01, 1.14374817e-04, 3.02332573e-01],
[1.46755891e-01, 9.23385948e-02, 1.86260211e-01, 3.45560727e-01],
[3.96767474e-01, 5.38816734e-01, 4.19194514e-01, 6.85219500e-01]])