小编Spi*_*uce的帖子

这个lambda函数的例子如何工作?

我正在学习Python中的lambdas,但我不明白这个例子中发生了什么.

谁能用简单的英语解释这里发生了什么?这个例子说它是"将一个小函数作为一个参数传递",但我不明白这意味着什么.

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]
Run Code Online (Sandbox Code Playgroud)

python lambda

5
推荐指数
1
解决办法
2829
查看次数

使用奇数个图表时将最后一个 matplotlib 子图居中

如果我有 5 个图表,如果我制作了 3x2 子图,如何将最后一个(第 5 个)图表居中?

这是我当前的代码:

plt.figure(1)

plt.subplot(321)
firstperiod.megaball.plot(kind='hist', bins = 25)

plt.subplot(322)
secondperiod.megaball.plot(kind='hist', bins = 36)

plt.subplot(323)
thirdperiod.megaball.plot(kind='hist', bins = 52)

plt.subplot(324)
fourthperiod.megaball.plot(kind='hist', bins = 46)

plt.subplot(325)
fifthperiod.megaball.plot(kind='hist', bins = 15)
Run Code Online (Sandbox Code Playgroud)

还想在图表之间放置更多的空白,这样轴值就不会变得狭窄和重叠..还有一个选项吗?

python charts matplotlib subplot

5
推荐指数
0
解决办法
7004
查看次数

使用AM/PM将python字符串转换为datetime obj

容易出问题,但这让我烦恼:

说我有这样的字符串:

test = '2015-08-12 13:07:32'
Run Code Online (Sandbox Code Playgroud)

要将其转换为日期时间对象并将其更改为AM/PM规范,这不应该工作吗?

datetime.datetime.strptime(test, '%Y-%m-%d %I:%M:%S %p')
Run Code Online (Sandbox Code Playgroud)

我收到这样的错误: ValueError: time data '2015-08-12 13:07:32' does not match format '%Y-%m-%d %I:%M:%S %p'

此外,奖励积分:

如果我已经有日期时间格式的东西,我该如何从该状态更改它?(如果我想将它保留为日期时间对象,只需将其重新格式化为AM/PM)

python datetime

5
推荐指数
1
解决办法
1万
查看次数

从终端检查ipython库的版本?

我正在使用Anaconda发行版中的iPython,我想知道如何从Terminal(使用Mac)检查某些库的版本,例如scikit_learn,但不知道命令...

有人可以建议吗?谢谢!

terminal version ipython libraries anaconda

5
推荐指数
1
解决办法
5233
查看次数

Python BeautifulSoup中的encode_contents与encode(“ utf-8”)

好的,所以作为一个初学者webscrapper,我感觉好像我都看过这两种用法,在将默认的Unicode文本转换为HTML时似乎可以互换。我知道contents()是一个列表对象,但除此之外,到底有什么区别?

我注意到.encode(“ utf-8”)似乎更通用。

谢谢,

困惑的汤匠。

python encode beautifulsoup

4
推荐指数
1
解决办法
2213
查看次数

将熊猫时间戳转换为时间(查找比.apply更快的时间)

因此,如果我在熊猫中有这样的时间戳记:

Timestamp('2014-11-07 00:05:00')
Run Code Online (Sandbox Code Playgroud)

如何创建仅包含“时间”组件的新列?

所以我要

00:05:00
Run Code Online (Sandbox Code Playgroud)

目前,我正在使用.apply如下所示的方法,但这很慢(我的数据帧是几百万行),我正在寻找一种更快的方法。

df['time'] = df['date_time'].apply(lambda x: x.time())
Run Code Online (Sandbox Code Playgroud)

而不是.apply,我尝试使用.astype(time),因为我注意到.astype操作可以比快.apply,但是显然不能在时间戳上使用(AttributeError:“ Timestamp”对象没有属性“ astype”)...有什么想法吗?

python datetime pandas

3
推荐指数
1
解决办法
4991
查看次数

在python中使用random.random生成随机样本

我想使用random.random函数生成0到1之间的100个随机数的样本大小.

import random
sample = [random.random for x in range(100)]
Run Code Online (Sandbox Code Playgroud)

例如,while print(len(sample))给我100,print(sample[1])只返回对随机对象()的引用而不是实际的随机数,这就是我想要的.

为什么这对我不起作用?

可能是基本的,但我找不到答案.

python random

2
推荐指数
1
解决办法
122
查看次数

字符串替换不起作用

我有点不好意思问:

但为什么这不会成功运作?.statswith方法在这里很好,返回True,但我不能让这个替换工作...

sandwich = "Au Cheval Cheeseburger"
restaurant = "Au Cheval"
if sandwich.startswith(restaurant):
    sandwich.replace(restaurant, "")
print sandwich
Run Code Online (Sandbox Code Playgroud)

(如果你不知道,我想要三明治只读干酪汉堡.还有一种更有效的方法来做到这一点,而不是通过字符串替换?

感谢大家.

编辑:上帝,我知道这是愚蠢的事情.现在已经很晚了,大脑也被炒了.感谢大家.

python

2
推荐指数
1
解决办法
69
查看次数

更多pythonic /优雅方式来做这个Python字符串切片?

所以我有一个带两个字符串输入的函数 - 它将它们切片,这样如果长度均匀,则前段的长度与后面的长度相同,如果是奇数长度,则中间字符前置到前段(即你好 - > hel,lo).然后混合并匹配两个字符串的结果前后段以产生最终输出.

我希望能够在一个功能下完成所有这一切,我想出的是丑陋的一切:

def front_back(a, b):
    if len(a) % 2 == 0:
        front_a = a[:len(a)/2]
        back_a = a[len(a)/2:]
    elif len(a) % 2 != 0:
        front_a = a[:(len(a)/2)+1]
        back_a = a[(len(a)/2)+1:]
    if len(b) % 2 == 0:
        front_b = b[:len(b)/2]
        back_b = b[len(b)/2:]
    elif len(b) % 2 != 0:
        front_b = b[:(len(b)/2)+1]
        back_b = b[(len(b)/2)+1:]

    print front_a + front_b + back_a + back_b

front_back('Kitten', 'Donut') ---> KitDontenut
Run Code Online (Sandbox Code Playgroud)

有更多的pythonic /优雅方式吗?

我无法弄清楚如何使用lambdas(他们无法处理if处理偶数和奇数长度情况所必需的声明......我想?)如果这是要走的路......

更新:感谢大家的好建议.还有一个问题:

当我尝试使用lamdbas的版本时,基于一个建议(对于练习),我得到一个没有定义全局名称's'的NameError.我怎么写lambda有什么问题?

def front_back(a, b): …
Run Code Online (Sandbox Code Playgroud)

python string lambda

1
推荐指数
2
解决办法
132
查看次数

Python str.format()---传入列表,输出列表

我之前没有使用str.format(),我想知道如何传入列表值并检索传入这些值的列表输出.

listex = range(0, 101, 25)
baseurl = "https://thisisan{0}example.com".format(*listex)
Run Code Online (Sandbox Code Playgroud)

我想要一个列表输出 ["https://thisisan0example.com", "https://thisisan25example.com", "https://thisisan50example.com", etc etc]

但是根据我目前的代码,我只是"https://thisisan0example.com"在跑步时才会这样做print baseurl

python string list string-formatting

1
推荐指数
1
解决办法
92
查看次数

同时在Numpy数组中翻转两个值

如果我有一个numpy数组,如:

[0,1,0,2,2]
Run Code Online (Sandbox Code Playgroud)

我想同时翻转列表中的0和2(获取[2,1,2,0,0]),最好的方法是什么?

python numpy

1
推荐指数
1
解决办法
57
查看次数

编写与reverse()函数类似的Python代码

我正在寻找分解reverse()函数并将其写在代码中以供练习。我最终弄清楚了如何做到这一点(向后逐步浏览原始列表并附加到新的“反向”列表),但想知道为什么这不起作用。

def reverse(list):
    newlist = []
    index = 0
    while index < len(list):
        newlist[index] = list[(len(list)) - 1 - index]
        index = index + 1
    return newlist

list = [1, 2, 3, 4, 5]
print(reverse(list))
Run Code Online (Sandbox Code Playgroud)

python reverse list python-3.x

0
推荐指数
1
解决办法
3372
查看次数

我应该使用什么分类模型?机器学习新手。需要推荐

目标:

大家好,我正在尝试用 Python 创建一个分类模型来预测共享单车站每小时的相对流入或流出过多的情况。

我们正在做什么:

我的数据帧的前 5 行(总共超过 200,000 行)看起来像这样,我在“flux”列中分配了值 0、1、2 - 0 如果没有重大操作,1 如果流入太多,2 如果流出过多。

在此输入图像描述

我正在考虑使用 station_name(超过 300 个车站)、一天中的小时和一周中的某一天作为预测变量来对“通量”进行分类。

型号选择:

我应该带什么去?朴素贝叶斯?克恩?随机森林?还有什么合适的吗?GDM?支持向量机?

仅供参考:始终为 0 的基线预测相当高,达到 92.8%。不幸的是,逻辑回归和决策树的准确性与此相当,并且并没有提高太多。KNN 需要永远......

那些对机器学习更有经验的人在处理这样的分类问题时有什么建议吗?

python classification machine-learning

0
推荐指数
1
解决办法
2474
查看次数