小编PyR*_*red的帖子

使用emaildata 0.3.4使用Python 3.6读取.eml文件

我正在使用python 3.6.1,我想读取电子邮件文件(.eml)进行处理。我正在使用emaildata 0.3.4软件包,但是,每当我尝试如文档中那样导入Text类时,都会收到模块错误:

import email
from email.text import Text
>>> ModuleNotFoundError: No module named 'cStringIO'
Run Code Online (Sandbox Code Playgroud)

当我尝试使用此更新进行更正时,出现下一个与mimetools

>>> ModuleNotFoundError: No module named 'mimetools'
Run Code Online (Sandbox Code Playgroud)

是否可以使用带有Python 3.6的emaildata 0.3.4来解析.eml文件?还是可以使用其他软件包来解析.eml文件?谢谢

python parsing nlp eml

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

如何在 pandas 中存储仅时间时间戳?

我有一个数据框df

user    timestamp  amount
us67    15:59:07   87
us90    17:12:19   10
us12    03:23:16   17

print(df.timestamp[0])
>>> datetime.time(15,59,7)
Run Code Online (Sandbox Code Playgroud)

我想将所有时间分成 1 小时间隔,因此总共 24 个间隔。但是,我得到了TypeError

df['timestamp'] = pd.cut(x=df['timestamp'], bins=24)
>>> TypeError: unsupported operand type(s) for +: 'datetime.time' and 'float'
Run Code Online (Sandbox Code Playgroud)

但是,如果日期包含在列中,该方法确实有效timestamp,但我想忽略日期并只保留时间(用于稍后绘制):

user    timestamp                 amount
us67    2018-04-29 15:59:07.455   87
us90    2018-04-29 17:12:19.128   10
us12    2018-04-29 03:23:16.890   17

print(df.timestamo[0])
>>> Timestamp('2018-04-29 15:59:07.455000')

df['timestamp'] = pd.cut(x=df['timestamp'], bins=24)
Run Code Online (Sandbox Code Playgroud)

使用上面的格式timestamp,可以进行分箱。但是我不希望时间戳或间隔中包含年份和日期。我只想关注一天中的某个时间。

有没有办法timestamp只使用一天中的某个时间进行垃圾箱?最终的目标是仅使用一天中的小时而不是日期来绘制df( timestampvs. amount) 的时间序列 - 因此,如果有更好的方法可以做到这一点,请提出建议。

python datetime pandas

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

scipy.stats是否为不同的计算机硬件生成不同的随机数?

我遇到一个问题,尽管我在不同的计算机上都获得了不同的随机数

  • scipy.__version__ == '1.2.1' 在所有计算机上
  • numpy.__version__ == '1.15.4' 在所有计算机上
  • random_state 每个函数调用中将种子固定为相同的数字(42),该函数生成随机数以产生可重复的结果

在这里完整地发布代码有点复杂,但是我注意到从多元正态采样时,结果开始出现差异:

import numpy as np
from scipy import stats
seed = 42
n_sim = 1000000
d = corr_mat.shape[0] # corr_mat is a 15x15 correlation matrix, numpy.ndarray
# results diverge from here across different hardware
z = stats.multivariate_normal(mean=np.zeros(d), cov=corr_mat).rvs(n_sim, random_state=seed)
Run Code Online (Sandbox Code Playgroud)

corr_mat 是一个相关矩阵(请参阅下面的附录),并且在所有计算机上都相同。

我们正在测试的两台不同的计算机是

电脑1


  • 作业系统:Windows 7
  • 处理器:Intel(R)Xeon(R)CPU E5-2623 v4 @ 2.60Ghz 2.60 Ghz(2个处理器)
  • 内存:64 GB
  • 系统类型:64位

电脑2


  • 作业系统:Windows 7
  • 处理器:Intel(R)Xeon(R)CPU E5-2660 v3 @ 2.10Ghz 2.10 Ghz(2个处理器)
  • 内存:64 …

python hardware random numpy scipy

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

加速Metropolis - Python中的黑斯廷斯

我有一些代码使用MCMC对后验分布进行采样,特别是Metropolis Hastings.我使用scipy生成随机样本:

import numpy as np
from scipy import stats

def get_samples(n):
    """
    Generate and return a randomly sampled posterior.

    For simplicity, Prior is fixed as Beta(a=2,b=5), Likelihood is fixed as Normal(0,2)

    :type n: int
    :param n: number of iterations

    :rtype: numpy.ndarray
    """
    x_t = stats.uniform(0,1).rvs() # initial value
    posterior = np.zeros((n,))
    for t in range(n):
        x_prime = stats.norm(loc=x_t).rvs() # candidate
        p1 = stats.beta(a=2,b=5).pdf(x_prime)*stats.norm(loc=0,scale=2).pdf(x_prime) # prior * likelihood 
        p2 = stats.beta(a=2,b=5).pdf(x_t)*stats.norm(loc=0,scale=2).pdf(x_t) # prior * likelihood 
        alpha = p1/p2 …
Run Code Online (Sandbox Code Playgroud)

python random numpy mcmc numba

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

使用列表推导从元组列表列表中创建矩阵

我有一个元组列表列表 list1

list1 = [[('a',0.01),('b',0.23),('c',1e-7)],
      [('a',0.91),('b',0.067),('c',0.38)]]
Run Code Online (Sandbox Code Playgroud)

我想创建一个numpy矩阵,其中每一行都是元组的第二个值list1.因此矩阵,我们称之为A,将形成

A = [[0.01,0.23,1e-7],[0.91,0.067,0.38]]
A.shape
>>> (2,3)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经设法以缓慢而低效的方式实现这一目标

A = []
for i in range(len(list1)):
    A.append(np.array([v for k,v in list1[i]]))
A = np.array(A)
Run Code Online (Sandbox Code Playgroud)

如何使用列表理解来完成此操作?

python numpy list-comprehension matrix

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

pyspark:系统找不到指定的路径

我刚刚使用conda安装了pyspark 2.2.0(在windows 7 64位上使用python v3.6,java v1.8)

$conda install pyspark
Run Code Online (Sandbox Code Playgroud)

它下载并似乎安装正确,没有错误。现在,当我pyspark在命令行上运行时,它只是告诉我“系统找不到指定的路径”。

$pyspark
The system cannot find the path specified.
The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

我尝试将 pyspark 路径目录包含在我的 PATH 环境变量中,但这似乎仍然不起作用,但也许我给出了错误的路径?任何人都可以请建议。Java路径需要在PATH环境变量中指定吗?谢谢

python environment-variables pyspark

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

使用 GPU 多处理了解 openAIgym 和 Optuna 超参数调整

我正在使用 openAI 的stable-baselines训练强化学习代理。我还使用optuna优化代理超参数。

为了加快该过程,我在不同的函数调用中使用多重处理。具体参见SubprocVecEnv此处文档study.optimize中的建议(分别在 1.15.3 和 1.10.4 下)。

import numpy as np
from stable_baselines.common.vec_env import SubprocVecEnv
from stable_baselines import PPO2
from stable_baselines.common.policies import MlpLnLstmPolicy
import optuna

n_cpu = 4


def optimize_ppo2(trial):
    """ Learning hyperparamters we want to optimise"""
    return {
        'n_steps': int(trial.suggest_loguniform('n_steps', 16, 2048)),
        'gamma': trial.suggest_loguniform('gamma', 0.9, 0.9999),
        'learning_rate': trial.suggest_loguniform('learning_rate', 1e-5, 1.),
        'ent_coef': trial.suggest_loguniform('ent_coef', 1e-8, 1e-1),
        'cliprange': trial.suggest_uniform('cliprange', 0.1, 0.4),
        'noptepochs': int(trial.suggest_loguniform('noptepochs', 1, 48)),
        'lam': trial.suggest_uniform('lam', 0.8, 1.)
    }


def optimize_agent(trial):
    """ …
Run Code Online (Sandbox Code Playgroud)

python gpu reinforcement-learning openai-gym

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

熊猫并排堆积条形图

我想创建钛酸数据集的堆叠条形图。该情节需要按“ Pclass”,“ Sex”和“ Survived”分组。我已经通过大量乏味的numpy操作做到了这一点,以产生下面的归一化图(其中“ M”是男性,“ F”是女性)在此处输入图片说明

有没有办法使用熊猫内置的绘图功能来做到这一点?

我已经试过了:

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('train.csv')
df_grouped = df.groupby(['Survived','Sex','Pclass'])['Survived'].count()
df_grouped.unstack().plot(kind='bar',stacked=True,  colormap='Blues', grid=True, figsize=(13,5));
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这不是我想要的。无论如何,有没有使用熊猫图制作第一个图?提前致谢

python plot matplotlib bar-chart pandas

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

从另一个文件导入类是否也会导入该文件的依赖项?

假设我有一个名为 src.py 的脚本,其中定义了几个函数;这些函数都在一个名为 的类中LDAnumpy这些函数需要、等库scipy,这些库在脚本顶部作为标准导入。

现在,在一个名为 的新单独脚本中,main.py我导入该类LDA

from src import LDA
Run Code Online (Sandbox Code Playgroud)

如果我现在在新脚本中使用该类LDA及其所有函数main.py即使我没有导入src.py. 这是如何运作的?我是否应该需要 importnumpyscipy才能main.py工作LDA

python import dependencies

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

如何从熊猫数据帧创建一个字典?

我有一个数据框 df

id      price      date         zipcode
u734    8923944    2017-01-05   AERIU87
uh72    9084582    2017-07-28   BJDHEU3
u029    299433     2017-09-31   038ZJKE
Run Code Online (Sandbox Code Playgroud)

我想创建一个具有以下结构的字典

{'id': xxx, 'data': {'price': xxx, 'date': xxx, 'zipcode': xxx}}
Run Code Online (Sandbox Code Playgroud)

到目前为止我所做的

ids = df['id']
prices = df['price']
dates = df['date']
zips = df['zipcode']
d = {'id':idx, 'data':{'price':p, 'date':d, 'zipcode':z} for idx,p,d,z in zip(ids,prices,dates,zips)}
>>> SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

但我得到了上面的错误。

使用任一方法执行此操作的正确方法是什么

  • 列表理解

或者

  • 熊猫 .to_dict()

加分点:算法的复杂度是多少,有没有更有效的方法来做到这一点?

python dictionary list-comprehension list pandas

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