2020-12-15

python基础知识

     一 Pyhton 基础
           1.使用单个for 循环生成列表
             list = [ i for i in range(5) ]   #使用循环表达式生成列表
            2.使用多个for循环生成列表
             list = [m +'_'+n for m in [ 'a ', 'b'] for n in [ 'c','d']]
            3.匿名函数方法
               [ lambda x: 2*x) ( i ) for i in ranhe(5) ]
            4.map 函数方法
               list( map(lambda x : x**2 ,range(8) ))
               **注**map()函数,第一个参数为函数参数,这里使用lambda匿名函数。
           5.zip对象与enumerate方法
              L1 ,L2 ,L3 = list('123') ,list('456') ,list('789')
              list(zip(L1,L2,L3))  #zip()函数返回是zip对象,需要list()、tuple()才可以得到打包结果。
              L =[ 'abcdefg' ]
              for index , value in enumerate( L):
                     print( f'{value} 的index 是{ index})

Numpy基础

一、numpy的array构造
1.numpy的array 数组的构造
import numpy as np
np.array([1,2,3,4,5])
2.常用一些函数生成
np.linspace ( 1,8 ,10) # 1 为起始 ,8 为终止 ,10为样本个数,可以自己设定
np.arange(1,5,2) #起始 、终止 (不包含 5)
3.用zeros()、eye()、full() 创建矩阵
np.zeros( (3,3,)) #传递元组
np.eye( 3 ) #传递一个整数,返回对角线为1的矩阵。
np.full( (3,3),8) #传递(3,3)元组,返回得到3X3大小,值为8的矩阵。
4.常用的随机生成函数
np.random.rand( 3 ) # 生成服从0-1均匀分布随机数
np.random.randn(3) #生成(0,1)的标准正态分布
np.random.randint(1,9,(3,3)) #生成1到9的随机数

二、numpy数组的变形与合并
1.转置
np.ones((3,3)).T #T用于转置
2.神奇的合并:r_ ,c_
np.r_[ np.zeros((2,2,)),np.zeros((2,2))]
#上下合并,变成(4,2)矩阵
np.c_[np.zeros((2,2)),np.zeros((2,2))]
#左右合并,变成(2,4)矩阵
3.维度帮手:reshape
reshape可以实现低维到高维变换

三、numpy的切片和索引
1. 切片索引
target = np.arange(9).reshape(3,3)
target[:-1, [0,2]]
打印如下:
array([[0, 2],
[3, 5]])
2.bool索引
new = target.reshape(-1)
new[new%2==0]
打印如下:
array([0, 2, 4, 6, 8])

四、广播机制
当想要对不同维度数组之间进行运算是,就会使用到广播机制。
例如: one = np.ones((3,2))
one * np.array([2,3])
打印结果:
array([[2., 3.],
[2., 3.],
[2., 3.]])
#本质上[ 2, 3]和one中每一个元素都相乘。

五、向量与矩阵的计算
1.向量内积:dot()函数。
a = np.array([1 ,2 ,3])
b = np.array([ 2,3,4])
a.dot( b)
打印结果:20
2. 矩阵乘法
a = np.arange(4).reshape(-1,2)
b = np.arange(-4,0).reshape(-1,2)
a @ b
打印结果:
array([[ -2, -1],
[-14, -9]])

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值