python学习

1.numpy模块:shape()

功能:读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。
输入参数:可以是一个整数(表示维度),也可以是一个矩阵。
例子:

  1. 参数为一个数时,返回空:
    在这里插入图片描述
  2. 参数是一维矩阵:
    在这里插入图片描述
  3. 参数是二维矩阵:
    在这里插入图片描述
  4. 直接用.shape可以快速读取矩阵的形状,使用shape[0]读取矩阵第一维的长度
    在这里插入图片描述
  5. 但当某一维度长度不一致时,读取所有维度时则不能读出长短不一致的维度
    在这里插入图片描述

2.numpy模块:tile()方法

函数形式:tile(A,rep)
功能:重复A的各个维度
参数类型:

  • A:Array类的都可以
  • rep: A沿着各个维度重复的次数

>>> import numpy

>>> numpy.tile([0,0],5)#在列方向上重复[0,0]5次,默认行1次

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

>>> numpy.tile([0,0],(1,1))#在列方向上重复[0,0]1次,行1次

array([[0, 0]])

>>> numpy.tile([0,0],(2,1))#在行方向上重复[0,0]2次,列1次

array([[0, 0],

       [0, 0]])

>>> numpy.tile([0,0],(3,1))

array([[0, 0],

       [0, 0],

       [0, 0]])

>>> numpy.tile([0,0],(1,3))#在列方向上重复[0,0]3次,行1次

array([[0, 0, 0, 0, 0, 0]])

>>> numpy.tile([0,0],(2,3))<span style="font-family: Arial, Helvetica, sans-serif;">#在列方向上重复[0,0]3次,行2次</span>

array([[0, 0, 0, 0, 0, 0],

       [0, 0, 0, 0, 0, 0]])

3.sum(axis=1)

功能:

  • sum(axis=0):是将一个矩阵的每一列向量相加
  • sum(axis=1):是将一个矩阵的每一行向量相加
  • sum():全部相加结果为一个数

>>> import numpy as np

>>> a=np.sum([[0,1,2],[2,1,3]])

>>> a

9

>>> a.shape

()

>>> a=np.sum([[0,1,2],[2,1,3]],axis=0)

>>> a

array([2, 2, 5])

>>> a.shape

(3,)

>>> a=np.sum([[0,1,2],[2,1,3]],axis=1)

>>> a

array([3, 6])

>>> a.shape

(2,)

扩展:

  • 类似的还有argmax,sum等等函数,它们都含有一个名为axis的参数,那这个参数到底是什么意思呢?一句话总结就是:沿着axis指定的轴进行相应的函数操作
import numpy as np
#首先,创建一个2×3维的numpy的array数组
x=[[2,3,4],[1,2,5]]
x=np.array(x)
#然后,计算不同参数下np.max的输出

print(np.max(x))
# 5
print(np.max(x,0))
# [2,3,5]
print(np.max(x,1))
# [4,5]

可以看到,如果不知道axis,那么默认就是取得整个数组的最大值,这相当于把多维数组展开成一维,然后找到这个一维数组里的最大值。
而当axis=0时,直观上来看就是取得每一列的最大值,源数组总共为2行3列,所以最终的输出包含3个元素。
当axis=1时,就相当与是取每一行的最大值。

上面的理解方式在二维数组还比较直观,但是如果数组达到3维4维甚至更高维时,就不能简单的从行列角度出发去理解了,这时应该考虑从“轴”的角度来看。首先,明确一点,“轴”是从外向里的,也就是说,最外层的是0轴,往内一次是1轴,2轴… 。 具体可以看下面的例子:

array([[[ 2,  3,  4,  8],
        [ 3,  1,  4,  1],
        [ 6,  3,  2,  6]],

       [[10,  2, 45,  2],
        [ 2,  4,  5, 10],
        [22,  4,  4,  1]]])
>>> z.shape
(2, 3, 4)

可以看到,这是一个2×3×4的三位数组,其中0轴对应第一维(2),1轴对应第二维(3),2轴对应第三维(4)。当我们指定了函数按某一轴来计算时,函数的输出数组的shape就是去掉当前轴的shape,如下所示。

>>> np.max(z,axis=0).shape
(3, 4)
>>> np.max(z,axis=1).shape
(2, 4)
>>> np.max(z,axis=2).shape
(2, 3)

而对于输出数组的每一个元素output[i][j]的值,实际上就是z[i][…][j]集合中的最大值,如下面的代码所示。其中当axis=0时,输出数组output的shape为3×4,其中output.[2][3]的值,实际上就是z[0][2][3],z[1][2][3]的最大值,也就是(6,1)中的最大值,即为output.[2][3]=6。
再如axis=1时,输出数组output的shape为2×4,其中output.[1][2]的值,实际上就是z[1][0][2],z[1][1][2],z[1][2][2]中的最大值,也就是(45,5,4)中的最大值,即为output.[1][2]=45。

>>> np.max(z,axis=0)
array([[10,  3, 45,  8],
       [ 3,  4,  5, 10],
       [22,  4,  4,  6]])
>>> np.max(z,axis=1)
array([[ 6,  3,  4,  8],
       [22,  4, 45, 10]])
>>> np.max(z,axis=2)
array([[ 8,  4,  6],
       [45, 10, 22]])

转载链接

4.字典的get()方法

  • 语法:dict.get(key, default=None)
  • 功能:返回指定键的值,如果值不在字典中,则返回默认值
  • 参数:
    -key:字典中要查找的键
    -default:如果指定键不存在时,则返回该默认值None
    例子:
    在这里插入图片描述
    输出:
    在这里插入图片描述

6.sorted()函数

  • 功能:对所有可迭代的对象进行排序操作
  • sort 与 sorted 区别:
    sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
    list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
  • 语法:sorted(iterable[, cmp[, key[, reverse]]])
  • 参数说明:
    -iterable – 可迭代对象。
    -cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
    -key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    -reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
  • 返回值:返回重新排序的列表
    例子:
    在这里插入图片描述

7.字典的items()方法

  • items方法是可以将字典中的所有项,以列表方式返回。
  • iteritems方法与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。(python3.X已经取消)
    例子:

>>> d = {'1':'one', '2':'two', '3':'three'}

>>> x = d.items()

>>> x

[('1', 'one'), ('3', 'three'), ('2', 'two')]

>>> type(x)

<type 'list'>

>>> y = d.iteritems()

>>> y

<dictionary-itemiterator object at 0x025008A0>

>>> type(y)

<type 'dictionary-itemiterator'>

8.split()方法

  • 功能:通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
  • 语法:str.split(str="", num=string.count(str))
  • 参数:
    -str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
    -num – 分割次数。默认为 -1, 即分隔所有
  • 返回值:返回分割后的字符串列表
    例子:
    在这里插入图片描述
    输出:
    在这里插入图片描述
    在这里插入图片描述
    输出:
    在这里插入图片描述

9.strip()方法

  • 功能:用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
    注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
  • 语法:str.strip([chars])
  • 参数:chars – 移除字符串头尾指定的字符序列
  • 返回值:返回移除字符串头尾指定的字符生成的新字符串
    例子:
    在这里插入图片描述
    输出:
    在这里插入图片描述
    从结果上看,可以注意到中间部分的字符并未删除。
    以上下例演示了只要头尾包含有指定字符序列中的字符就删除:
    在这里插入图片描述
    输出:
    在这里插入图片描述

10.read、readline和readlines的区别

  • read 读取整个文件
  • readline 读取下一行
  • readlines 读取整个文件到一个迭代器以供我们遍历(读取到一个list中,以供使用,比较方便)
    在这里插入图片描述

11.dump()

  1. dump()方法

pickle.dump(obj, file, [,protocol])

注释:序列化对象,将对象obj保存到文件file中去。参数protocol是序列化模式,默认是0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二进制协议;2是新二进制协议)。file表示保存到的类文件对象,file必须有write()接口,file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象。

  1. load()方法

pickle.load(file)

注释:反序列化对象,将文件中的数据解析为一个python对象。file中有read()接口和readline()接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值