小编Luk*_*ski的帖子

Python Pandas:连接具有唯一值的行

在 Python pandas 中,我有一个大数据框,如下所示:

df = pd.DataFrame ({'a' : ['foo', 'bar'] * 3,
             'b' : ['foo2', 'bar2'] * 3,
             'c' : ['foo3', 'bar3'] * 3,
             'd' : ['q','w','e','r','t','y'],
             'e' : ['q2','w2','e2','r2','t2','y2']})


     a     b     c  d   e
1  bar  bar2  bar3  w  w2
3  bar  bar2  bar3  r  r2
5  bar  bar2  bar3  y  y2
4  foo  foo2  foo3  t  t2
2  foo  foo2  foo3  e  e2
0  foo  foo2  foo3  q  q2
Run Code Online (Sandbox Code Playgroud)

它包含一打具有重复值(a、b、c...)的列和一些具有唯一值(d、e)的列。我想删除所有重复的值并收集那些唯一的值,即:

     a     b     c  d   e
1  bar …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

AWS Elastic Beanstalk:nginx 重新加载失败

我已经根据这篇文章向我的 Elastic Beanstalk 环境提供了 nginx 配置。我的应用程序位于 Docker 容器中。问题是环境重新加载nginx失败。

这是我的配置文件:

files:
  "/etc/nginx/conf.d/proxy.conf" :
    mode: "000644"
    owner: root
    group: root
    content: |
      client_max_body_size 500M;

container_commands:
  01_reload_nginx:
    command: "sudo service nginx reload"
Run Code Online (Sandbox Code Playgroud)

这导致失败(之后/var/log/eb-activity.log):

EmbeddedPostBuild/postbuild_0_audio_explorer] : Starting activity...
[2019-03-04T21:45:01.064Z] INFO  [3274]  - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Starting activity...
[2019-03-04T21:45:01.100Z] INFO  [3274]  - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Activity execution failed, because:  (ElasticBeanstalk::ExternalInvocationError)


[2019-03-04T21:45:01.100Z] INFO  [3274]  - [Application deployment app-8a62-190304_223307@1/StartupStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_audio_explorer/Command 01_reload_nginx] : Activity failed.
[2019-03-04T21:45:01.100Z] INFO  [3274]  - [Application deployment …
Run Code Online (Sandbox Code Playgroud)

nginx amazon-web-services amazon-elastic-beanstalk

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

我可以将使用 librosa 生成的频谱图转换回音频吗?

我将一些音频文件转换为频谱图并使用以下代码将它们保存到文件中:

import os
from matplotlib import pyplot as plt
import librosa
import librosa.display
import IPython.display as ipd

audio_fpath = "./audios/"
spectrograms_path = "./spectrograms/"
audio_clips = os.listdir(audio_fpath)

def generate_spectrogram(x, sr, save_name):
    X = librosa.stft(x)
    Xdb = librosa.amplitude_to_db(abs(X))
    fig = plt.figure(figsize=(20, 20), dpi=1000, frameon=False)
    ax = fig.add_axes([0, 0, 1, 1], frameon=False)
    ax.axis('off')
    librosa.display.specshow(Xdb, sr=sr, cmap='gray', x_axis='time', y_axis='hz')
    plt.savefig(save_name, quality=100, bbox_inches=0, pad_inches=0)
    librosa.cache.clear()

for i in audio_clips:
    audio_fpath = "./audios/"
    spectrograms_path = "./spectrograms/"
    audio_length = librosa.get_duration(filename=audio_fpath + i)
    j=60
    while j < audio_length: …
Run Code Online (Sandbox Code Playgroud)

python audio signal-processing spectrogram librosa

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

检查 Makefile 中是否存在 conda 环境

我正在 Makefile 中创建 conda 环境。但是,如果已经创建了此环境,我想跳过该步骤。我如何检查以下内容:

  1. 是否已经存在具有该名称的环境?简单的目录检查就足够了吗?
  2. 这个环境已经激活了吗?选修的。我认为,如果 env 被激活两次也没有什么坏处。
CONDA_ENV_NAME := myname

ifeq (,$(shell which conda))
    HAS_CONDA=False
else
    HAS_CONDA=True
    CONDA_ACTIVATE=source $$(conda info --base)/etc/profile.d/conda.sh ; conda activate ; conda activate
endif

environment:
ifeq (True,$(HAS_CONDA))
    @echo ">>> Detected conda, creating conda environment."
    ## Here I'd like to check if this environment already exists
    conda env create -f environment.yml -n $(CONDA_ENV_NAME)
    ## ... and if the env should be activated (optional)
    $(CONDA_ACTIVATE) $(CONDA_ENV_NAME)
else
    @echo ">>> Install conda first."
endif


Run Code Online (Sandbox Code Playgroud)

python makefile anaconda conda

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

调用外部模块时多处理池变慢

我的脚本正在调用librosa模块来计算短音频的 Mel 频率倒谱系数 (MFCC)。加载音频后,我想尽可能快地计算这些(以及其他一些音频功能) - 因此进行多处理。

问题:多处理变体比顺序慢得多。分析说我的代码花费了超过 90% 的时间在<method 'acquire' of '_thread.lock' objects>. 如果它是许多小任务,这并不奇怪,但在一个测试用例中,我将音频分成 4 个块,然后在单独的进程中处理。我认为开销应该最小,但实际上,它几乎和许多小任务一样糟糕。

据我所知,多处理模块应该分叉几乎所有的东西,并且不应该有任何争夺锁的斗争。然而,结果似乎显示出不同的东西。可能是下面的librosa模块保持某种内部锁吗?

我的分析结果为纯文本:https : //drive.google.com/open?id=17DHfmwtVOJOZVnwIueeoWClUaWkvhTPc

作为图片:https : //drive.google.com/open?id=1KuZyo0CurHd9GjXge5CYQhdWn2Q6OG8Z

重现“问题”的代码:

import time
import numpy as np
import librosa
from functools import partial
from multiprocessing import Pool

n_proc = 4

y, sr = librosa.load(librosa.util.example_audio_file(), duration=60) # load audio sample
y = np.repeat(y, 10) # repeat signal so that we can get more reliable measurements
sample_len = int(sr …
Run Code Online (Sandbox Code Playgroud)

python audio performance multiprocessing librosa

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

有没有方法保存 Labelencoder 的字典以进行推理

我正在尝试建立一个推理管道。它由两部分组成。使用前几年的一些表格订单元数据进行每月 ML 模型训练,并使用当天的新订单进行每日推理预测。我想在我的模型中包含几个字符串分类列,我使用 labelencoder 将它们转换为整数。我想知道如何确保在数据预处理期间将日常推理数据集转换为相同的类别。我应该保存标签编码器的字典并映射到我的推理数据集吗?谢谢。

python inference machine-learning data-science

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

没有名为“uff”的模块

目标: 将 tensorflow .pb 模型转换为 tensorrt

系统规格: Ubundu 18.04 Cuda 10.0 TensorRT 5.1

连安装 sudo apt-get install uff-converter-tf

尝试uff在 Python 中导入时出错:

ModuleNotFoundError: 没有名为“uff”的模块

python tensorflow tensorrt uff

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