概述
itertools的函数combinations, permutationspermutation是随机有放回抽样
combination是随机无放回抽样
from itertools import combinations, permutations
print list(combinations([1,2,3],2))-->[(1, 2), (1, 3), (2, 3)]
print list(permutations([1,2,3], 2)) -->[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
random.sample(pop, k)
——从pop类型中随机选取k个元素,以列表类型返回,如果k大于所有元素的个数,则报错
from random import *
sample([10, 20, 30, 40, 50], k=3)[20, 30, 10]
Python filter() 函数
描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法
以下是 filter() 方法的语法:
filter(function, iterable)
参数function -- 判断函数。
iterable -- 可迭代对象
lambda
lambda函数也叫匿名函数,即没有具体名称的函数,它允许快速定义单行函数,可以用在任何需要函数的地方。这区别于def定义的函数。
#单个参数的:
g = lambda x : x ** 2
print g(3)
"""9"""
#多个参数的:
g = lambda x, y, z : (x + y) ** z
print g(1,2,2)
"""9"""
将一个 list 里的每个元素都平方:
map( lambda x: x*x, [y for y in range(10)] )
这个写法要好过
def sq(x):
return x * x
map(sq, [y for y in range(10)])
a = [1, 2, 3]
map(sq, a)
Apply
Python中apply函数的格式为:apply(func,*args,**kwargs)
当然,func可以是匿名函数。
用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并将元组或者字典中的参数按照顺序传递给参数
解析:args是一个包含按照函数所需参数传递的位置参数的一个元组,简单来说,假如A函数的函数位置为 A(a=1,b=2),那么这个元组中就必须严格按照这个参数的位置顺序进行传递(a=3,b=4),而不能是(b=4,a=3)这样的顺序。kwargs是一个包含关键字参数的字典,而其中args如果不传递,kwargs需要传递,则必须在args的位置留空。
apply的返回值就是函数func函数的返回值。
def function(a,b):
print(a,b)
apply(function,('good','better'))
apply(function,(2,3+6))
apply(function,('cai','quan'))
apply(function,('cai',),{'b':'caiquan'})
apply(function,(),{'a':'caiquan','b':'Tom'})
输出结果:
('good', 'better')
(2, 9)
('cai', 'quan')
('cai', 'caiquan')
('caiquan', 'Tom')
DataFrame中apply的用法
#函数应用和映射
import numpy as np
import pandas as pd
df=pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['utah','ohio','texas','oregon'])
print(df)
"""b d eutah -0.667969 1.974801 0.738890ohio -0.896774 -0.790914 0.474183texas 0.043476 0.890176 -0.662676oregon 0.701109 -2.238288 -0.154442"""
#将函数应用到由各列或行形成的一维数组上。DataFrame的apply方法可以实现此功能
f=lambda x:x.max()-x.min()
#默认情况下会以列为单位,分别对列应用函数
t1=df.apply(f)
print(t1)
t2=df.apply(f,axis=1)
print(t2)
"""b 1.597883d 4.213089e 1.401566dtype: float64utah 2.642770ohio 1.370957texas 1.552852oregon 2.939397dtype: float64"""
#除标量外,传递给apply的函数还可以返回由多个值组成的Series
def f(x):
return pd.Series([x.min(),x.max()],index=['min','max'])
t3=df.apply(f)
#从运行的结果可以看出,按列调用的顺序,调用函数运行的结果在右边依次追加
print(t3)
"""b d emin -0.896774 -2.238288 -0.662676max 0.701109 1.974801 0.738890"""
#元素级的python函数,将函数应用到每一个元素
#将DataFrame中的各个浮点值保留两位小数
f=lambda x: '%.2f'%x
t3=df.applymap(f)
print(t3)
"""b d eutah -0.67 1.97 0.74ohio -0.90 -0.79 0.47texas 0.04 0.89 -0.66oregon 0.70 -2.24 -0.15"""
#注意,之所以这里用map,是因为Series有一个元素级函数的map方法。而dataframe只有applymap。
t4=df['e'].map(f)
print(t4)
"""utah 0.74ohio 0.47texas -0.66oregon -0.15"""
最后
以上就是冷静过客为你收集整理的python sample函数_python一些函数使用的全部内容,希望文章能够帮你解决python sample函数_python一些函数使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复