python——list,set,dict,numpy等常规操作


提示:这个是一篇参考资料整理,需要哪个函数直接点击目录查找即可


前言

python——list,set,dict等常规操作


一、List操作

index操作

list.index(x[, start[, end]])
x-- 查找的对象。
start-- 可选,查找的起始位置。
end-- 可选,查找的结束位置。

aList = [123, 'xyz', 'runoob', 'abc']
print "xyz 索引位置: ", aList.index( 'xyz' )
print "runoob 索引位置 : ", aList.index( 'runoob', 1, 3 )

apend,extend操作

  1. 列表可包含任何数据类型的元素,单个列表中的元素无须全为同一类型。
  2. append() 方法向列表的尾部添加一个新的元素。只接受一个参数。
  3. extend()方法只接受一个列表作为参数,并将该参数的每个元素都添加到原有的列表中。

pop()

  • 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

二、Numpy操作

squeeze操作

  • 从数组的形状中删除单维度条目,即把shape中为1的维度去掉
x = np.array([[[0], [1], [2]]])
x.shape
# (1, 3, 1)
np.squeeze(x).shape
# (3,)
np.squeeze(x, axis=0).shape
# (3, 1)
np.squeeze(x, axis=2).shape
#(1, 3)

meshgrid 形成网格数据


import numpy as np
 
#meshgrid  转换成坐标的形式
 
x = np.arange(-5, 5, 1)
y = np.arange(-5, 5, 1)
xx, yy = np.meshgrid(x, y, sparse=True)   # 为一维的矩阵
xx1, yy1 = np.meshgrid(x, y )  # 转换成二维的矩阵坐标
 
'''
xx1
[[-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]
 [-5 -4 -3 -2 -1  0  1  2  3  4]]
yy1
[[-5 -5 -5 -5 -5 -5 -5 -5 -5 -5]
 [-4 -4 -4 -4 -4 -4 -4 -4 -4 -4]
 [-3 -3 -3 -3 -3 -3 -3 -3 -3 -3]
 [-2 -2 -2 -2 -2 -2 -2 -2 -2 -2]
 [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1]
 [ 0  0  0  0  0  0  0  0  0  0]
 [ 1  1  1  1  1  1  1  1  1  1]
 [ 2  2  2  2  2  2  2  2  2  2]
 [ 3  3  3  3  3  3  3  3  3  3]
 [ 4  4  4  4  4  4  4  4  4  4]]

reshape

在这里插入图片描述

stack

import numpy as np
 
# stack()是按照不同轴的堆叠方式重新堆叠数组
 
a=[[1,2,3],[4,5,6]]
 
np.stack(a,axis=0)
# array([[1, 2, 3],
#       [4, 5, 6]])
 
np.stack(a,axis=1)
# array([[1, 4],
#       [2, 5],
#       [3, 6]])
 
#可以看出axis=0是把原来的元素按照横轴的方式排列,axis=1是把原先元素按照纵轴排列
 
# 更多的例子
 
a=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
 
np.stack(a,axis=0)
#array([[ 1,  2,  3,  4],
#       [ 5,  6,  7,  8],
#       [ 9, 10, 11, 12]])
 
np.stack(a,axis=1)
#array([[ 1,  5,  9],
#       [ 2,  6, 10],
#       [ 3,  7, 11],
#       [ 4,  8, 12]])
 
a=[1,2,3,4]
 
b=[5,6,7,8]
 
c=[9,10,11,12]
 
np.stack((a,b,c),axis=0)
#array([[ 1,  2,  3,  4],
#       [ 5,  6,  7,  8],
#       [ 9, 10, 11, 12]])
 
np.stack((a,b,c),axis=1)
#array([[ 1,  5,  9],
#       [ 2,  6, 10],
#       [ 3,  7, 11],
#       [ 4,  8, 12]])
 
a=[[1,2,3],[4,5,6]]
 
b=[[7,8,9],[10,11,12]]
 
c=[[13,14,15],[16,17,18]]
 
np.stack((a,b,c),axis=0)
#array([[[ 1,  2,  3],
#        [ 4,  5,  6]],
 
#       [[ 7,  8,  9],
#        [10, 11, 12]],
 
#       [[13, 14, 15],
#        [16, 17, 18]]])
 
np.stack((a,b,c),axis=1)
#array([[[ 1,  2,  3],
#        [ 7,  8,  9],
#        [13, 14, 15]],
 
#       [[ 4,  5,  6],
#        [10, 11, 12],
#        [16, 17, 18]]])
 
 
#hstack()、vstack()是按元素进行堆叠而不是数组的形状堆叠,具体与stack的区别后面有个例子
 
a=[1,2,3]
 
b=[4,5,6]
 
np.hstack((a,b))
#array([1, 2, 3, 4, 5, 6])
 
np.vstack((a,b))
#array([[1, 2, 3],
#       [4, 5, 6]])
 
#我们来看一下这三个函数对于复杂的矩阵堆叠的区别
 
a=[[1],[2],[3]]
 
b=[[4],[5],[6]]
 
c=[[7],[8],[9]]
 
 
np.stack((a,b,c),axis=0)
#array([[[1],
#        [2],
#        [3]],
 
#       [[4],
#        [5],
#        [6]],
 
#       [[7],
#        [8],
#        [9]]])
 
 
np.stack((a,b,c),axis=1)
#array([[[1],
#        [4],
#        [7]],
 
#       [[2],
#        [5],
#        [8]],
 
#       [[3],
#        [6],
3        [9]]])
 
np.hstack((a,b,c))
#array([[1, 4, 7],
#       [2, 5, 8],
#       [3, 6, 9]])
 
np.vstack((a,b,c))
#array([[1],
#       [2],
#       [3],
#       [4],
#       [5],
#       [6],
#       [7],
#      [8],
#       [9]])
 
#再来看一个
a=[[1,2,3],[4,5,6]]
 
b=[[7,8,9],[10,11,12]]
 
c=[[13,14,15],[16,17,18]]
 
np.stack((a,b,c),axis=0)
#array([[[ 1,  2,  3],
#        [ 4,  5,  6]],
 
#       [[ 7,  8,  9],
#        [10, 11, 12]],
 
#       [[13, 14, 15],
#        [16, 17, 18]]])
 
np.stack((a,b,c),axis=1)
#array([[[ 1,  2,  3],
#        [ 7,  8,  9],
#        [13, 14, 15]],
 
#       [[ 4,  5,  6],
#        [10, 11, 12],
#        [16, 17, 18]]])
 
np.hstack((a,b,c))
#array([[ 1,  2,  3,  7,  8,  9, 13, 14, 15],
#       [ 4,  5,  6, 10, 11, 12, 16, 17, 18]])
 
np.vstack((a,b,c))
#array([[ 1,  2,  3],
#       [ 4,  5,  6],
#       [ 7,  8,  9],
#       [10, 11, 12],
#       [13, 14, 15],
#       [16, 17, 18]])
 
#可以看出stack是在不破坏原有矩阵形状的情况下按照横或纵的方式堆叠,hstack和vstack更进一步,打破了原有矩阵的结

三、dict操作

OrderedDict

import collections

dic = collections.OrderedDict()
dic['k1'] = 'v1'
dic['k2'] = 'v2'
dic['k3'] = 'v3'
print(dic)

#输出:OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])

defaultdict

  • default_factory 接收一个工厂函数作为参数, 例如int str list set等.
    defaultdict在dict的基础上添加了一个__missing__(key)方法, 在调用一个不存的key的时候, defaultdict会调用__missing__, 返回一个根据default_factory参数的默认值, 所以不会返回Keyerror.

in 或者has_key

  • 两者都是判断一个key是否存在于某一字典中。两者结果是一致的。
    has_key()方法是老版本python中的方法,主要是兼容python2.2以前版本的方法,在python3中已经被删除。
    同时in的写法更符合python简单明了的特点。
    因此推荐使用 in 写法来判断,即

四、zip操作

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [7,8,9]
>>> z = zip(a,b,c)
>>> z
<zip object at 0x0000000002B86408> #返回的是一个对象
>>> list(z)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)] #使用list()函数转换为列表
>>> list(zip(a,c))
[(1, 7), (2, 8), (3, 9)]

五、pandas操作

赋值操作

赋值操作


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不被定义的号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值