model

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]])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值