菜鸟学习python,从零开始。

Python学习笔记(持续更新)

5.Python 字典(Dictionary) items()方法

Python 字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。

items()方法语法:dict.items()

详解:https://www.runoob.com/python3/python3-att-dictionary-items.html>

6.python中enumerate用法

enumerate参数为可遍历/可迭代的对象(如列表、字符串)
enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用

chars = {'我': 16, '他': 17, '你': 18}
xChars = {i: j for i, j in enumerate(chars)}
print(xChars)

输出:{0: ‘我’, 1: ‘他’, 2: ‘你’} 可以指定开始的索引值(如:i+3,默认0开始或者enumerate(chars,3))

7.python中的zip()函数用法

zip(Iterables)函数的对象Iterables,iterables可以有多个参数(元组,列表等可迭代对象)组成。通过zip()函数返回一组元组数据,每个元组中的第i个元素对应每个Iterables参数中的第i个元素。如果iterables的参数如果元素个数不同,则只返回元组的个数等于所有参数中元素最小的个数。

示例:

a = [1, 2, 3]
b = [7, 8, 9, 10]
zipped = list(zip(a, b))
print(zipped)
print(list(zip(*zipped)))  # zip(*)与zip()相反,可理解为解压,为zip的逆过程,可用于矩阵的转置

输出:

[(1, 7), (2, 8), (3, 9)]
[(1, 2, 3), (7, 8, 9)]

8.python 字典(Dictionary) 的get()方法

Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。

get()方法语法:

dict.get(key, default=None)

如:{‘age’:18, ‘name’:‘python’},key=age,存在则返回18,不存在返回none(可以设置为别的)。

也可以使用get()来统计一组数据不同值的个数,如

lis = [1, 0, 1, 2, 1, 2, 0, 1]
dic = {}
for values in lis:
	dic[values] = dic.get(values, 0) + 1
print(dic)
{1: 4, 0: 2, 2: 2}

get()返回dic[values]的值(这里指的个数),如果第一次访问(即不存在),返回0,否则返回对应的个数,并在此基础上加一。

9.python中*args 和**kwargs的用法

当函数的参数不确定时,可以使用*args和**kwargs,*args 没有key值,**kwargs有key值。

def fun(x, *args, **kwargs):
    """注意调用顺序(传入的顺序不能乱,对应于args,和kwargs)
    """
    print("x = ", x)
    print("args = ", args)
    print("kwargs = ", kwargs) # 以字典格式存放了所有的参数
    
fun(1,2,3,x1=1, x2=2, x3=3) # x=1, args=(2,3), kwargs={"x1": 1, "x2": 2, "x3": 3}

输出:

x =  1
args =  (2, 3)
kwargs =  {'x1': 1, 'x2': 2, 'x3': 3}

10.python中的super()函数用法

Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx,Class是super所在的类名,xxx是函数名。

首先找到Class的父类(比如是类A),然后把类Class的对象转换为类A的对象,然后“被转换”的类A对象调用自己的xxx函数(类A的)。

class FooParent(object):
    def __init__(self):
        self.parent = 'I\'m the parent.'
        print ('Parent')
    
    def bar(self,message):
        print ("%s from Parent" % message)
 
class FooChild(FooParent):
    def __init__(self):
        # super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类 FooChild 的对象转换为类 FooParent 的对象
        super(FooChild,self).__init__()    
        print ('Child')
        
    def bar(self,message):
        super(FooChild, self).bar(message)
        print (self.parent)    ####
 
if __name__ == '__main__':
    fooChild = FooChild()
    fooChild.bar('HelloWorld')

输出:

Parent
Child
HelloWorld from Parent
I'm the parent.

10.详解numpy的argmax()

argmax(test,axis)返回是test元素中最大值的索引,axis = 1是取行的最大值的索引,0是列的最大值的索引,如果是多维数组但是没有加axis如argmax(test)则把多维数组当成一维数组处理,按顺序找出最大值索引。

详解:https://blog.csdn.net/weixin_38145317/article/details/79650188

11.python的 .split()用法

split()默认元素的空格(分隔),也可以在()中指定删除的符号

"This is a test string from Andrew".split()
['This', 'is', 'a', 'test', 'string', 'from', 'Andrew']

12.详解numpy的argsort()

argsort函数返回的是数组值从小到大的索引值

import numpy as np
x = np.array([3, 1, 2])
print(np.argsort(x))
[1 2 0]
np.argsort(-x) #按降序排列
x[np.argsort(x)] #通过索引值排序后的数组

二维:

import numpy as np
x = np.array([[0, 3], [2, 2]])
print(np.argsort(x, axis=0))  #axis=0 按列排序  axis=1 按行排序
[[0 1]
 [1 0]]

13.python之切片操作符(Slice)

切片操作符在python中的原型是 :[start:stop:step] ,即:[开始索引:结束索引:步长值]

li = [1,2,3,4,5,6,7] 
print li[2:4]              #输出[3,4]。从索引2开始取,到索引为4的5为止(不含5) 
print li[-1]               #输出7,反向取第一个 
print li[-1:-5:2]          #输出空列表[],从反向第1个向反向第5个取,但步长为2,表示正向相隔二个取值。 
print li[-1:-5:-2]         #输出[7,5] 
print li[1:]    
#输出[2,3,4,5,6,7],省略终止索引,表示取起始索引之后的所有值,等效于li[1:len(li)] 
print li[:3]    
#输出[1,2,3],省略起始索引,表示从0开始取,等效于li[0:3] 
print li[:]  
#输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,等效于li[0:len(li):1]
print li[::]           
#输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,等效于li[0:len(li):1]
print li[::-1]        
#输出[7,6,5,4,3,2,1],省略起始索引、终止索引,步长值为-1,表示反向获取 

14.python的date()和weekday()的简单用法

from datetime import date
a = date(2018,9,12)     # a就为2018-9-12
a.weekday()             #结果是当天星期几,输出为2,因为0表示星期一
#因为0~6表示星期一到星期日,所以为了和现实表示一样的话,则在后面+1即可
a.weekday()+1           #结果为3,即当天星期三

15.python的replace()的用法

replace()方法语法:

str.replace(old, new[, max])
  • old – 将被替换的子字符串。
  • new – 新字符串,用于替换old子字符串。
  • max – 可选字符串, 替换不超过 max 次
str = "this is string example....wow!!! this is really string"
print str.replace("is", "was")
print str.replace("is", "was", 3)

16python的pd.get_dummies()详解

pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)[source]

  1. data:可以是数组类型,Series类型,DataFrame类型

  2. prefix:可以字符串,字符串列表,或字符串的字典类型,默认为None。将data的列名映射到prefix的字符串或者字典;

  3. drop_first:布尔型,默认为False,指是否删除第一列

import pandas as pd
import numpy as np
 
s=pd.Series(list('abca'))
s0=pd.get_dummies(s)
print(s)
print(s0)
'''
0    a
1    b
2    c
3    a
dtype: object
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0
'''
 
s1=['a','b',np.nan]
print(s1)
print(pd.get_dummies(s1))
print(pd.get_dummies(s1,dummy_na=True))
'''
['a', 'b', nan]
   a  b
0  1  0
1  0  1
2  0  0
   a  b  NaN
0  1  0    0
1  0  1    0
2  0  0    1
'''
 
df=pd.DataFrame({'A':['a','b','a'],'B':['b','a','c'],'C':[1,2,3]})
print(df)
print(pd.get_dummies(df))
print(pd.get_dummies(df,prefix=['col1','col2']))
'''
   A  B  C
0  a  b  1
1  b  a  2
2  a  c  3
   C  A_a  A_b  B_a  B_b  B_c
0  1    1    0    0    1    0
1  2    0    1    1    0    0
2  3    1    0    0    0    1
   C  col1_a  col1_b  col2_a  col2_b  col2_c
0  1       1       0       0       1       0
1  2       0       1       1       0       0
2  3       1       0       0       0       1
'''
 
print(pd.get_dummies(pd.Series(list('abcaa'))))
print(pd.get_dummies(pd.Series(list('abcaa')),drop_first=True))
'''
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0
4  1  0  0
   b  c
0  0  0
1  1  0
2  0  1
3  0  0
4  0  0
'''
 
print(pd.get_dummies(pd.Series(list('abx')),dtype=float))
'''
     a    b    x
0  1.0  0.0  0.0
1  0.0  1.0  0.0
2  0.0  0.0  1.0
''

17.python中pandas中Series()和DataFrame()的区别与联系

区别:
series,只是一个一维数据结构,它由index和value组成。
dataframe,是一个二维结构,除了拥有index和value之外,还拥有column。
联系:
dataframe由多个series组成,无论是行还是列,单独拆分出来都是一个series。多个series也可以组合成dataframe

Series:

#Series 它是有索引,如果我们未指定索引,则是以数字自动生成。
obj=Series([4,7,-5,3])
print(obj)
#输出结果如下:
# 0    4
# 1    7
# 2   -5
# 3    3
obj2=Series([4,7,-5,3],index=['d','b','a','c'])
print(obj2)
#输出结果如下:
# d    4
# b    7
# a   -5
# c    3
#如果数据被存在一个python字典中,也可以直接通过这个字典来创建Series.
sdata={'Ohio':35000,'Texax':71000,'Oregon':16000,'Utah':5000}
print(Series(sdata))
#输出结果如下:
# Ohio      35000
# Oregon    16000
# Texax     71000
# Utah       5000
#注:如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)

DataFrame相当于有表格,有行表头和列表头:

data = {'Country':['Belgium', 'India', 'Brazil'],
        'Capital':['Brussels', 'New Delhi', 'Brasilia'],
        'Population':[11190846, 1303171035, 207847528]
       }
print(pd.DataFrame(data))
'''
     Capital  Country  Population
0   Brussels  Belgium    11190846
1  New Delhi    India  1303171035
2   Brasilia   Brazil   207847528
'''
# 现在可以 构建几个series
s1 = pd.Series(data['Country'])
s2 = pd.Series(data['Capital'])
s3 = pd.Series(data['Population'])
df_new = pd.DataFrame([s1, s2, s3], index=['Country', 'Captital', 'Population'])
print(df_new)
'''
                   0           1          2
Country      Belgium       India     Brazil
Captital    Brussels   New Delhi   Brasilia
Population  11190846  1303171035  207847528

可以看到,行 和 列 都是颠倒的,因此需要进行一下转置
'''

print(df_new.T)
'''
   Country   Captital  Population
0  Belgium   Brussels    11190846
1    India  New Delhi  1303171035
2   Brazil   Brasilia   207847528

'''

'''
总结:
    series, 就是一个 一维 的数据结构,它是由 index 和 value 组成。
    dataframe, 是一个 二维 数据结构,它由多个 series 构成。
'''

18.python中的.format() 格式化函数

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {}: 来代替以前的 %

format 函数可以接受不限个参数,位置可以不按顺序。

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

eries, 就是一个 一维 的数据结构,它是由 index 和 value 组成。
dataframe, 是一个 二维 数据结构,它由多个 series 构成。
‘’’




## 18.python中的.format() 格式化函数

Python2.6 开始,新增了一种格式化字符串的函数 **str.format()**,它增强了字符串格式化的功能。

基本语法是通过 **{}** 和 **:** 来代替以前的 **%** 。

format 函数可以接受不限个参数,位置可以不按顺序。

```python
>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

更多用法和详解:https://blog.csdn.net/jpch89/article/details/84099277

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值