经过20年的中断后重新开始编程.一直认为在python中使用全局变量是设计糟糕的标志,但无法找到更好的方法.
下面是一个小程序,利用全局变量'暂停'来确定音乐播放器的状态.该变量由几个函数使用.
没有利用全局变量有更好的方法吗?
# Global variable to access from multiple functions
paused = False
def play_music():
global paused
if not paused:
try:
mixer.music.load(filename)
mixer.music.play()
statusBar['text'] = 'Playing Music - ' + os.path.basename(filename)
except:
tkinter.messagebox.showerror('File not found',
'Melody could not find the file.')
else:
mixer.music.unpause()
paused = False
statusBar['text'] = 'Playing Music - ' + os.path.basename(filename)
def stop_music():
mixer.music.stop()
statusBar['text'] = 'Music stopped'
def pause_music():
global paused
if not paused:
mixer.music.pause()
paused = True
statusBar['text'] = 'Music paused'
else:
play_music()
Run Code Online (Sandbox Code Playgroud) 我正在尝试对时间序列数据进行离群值处理,在该数据中,我想将> 95%的值替换为95%的值,将<5%的值替换为5%的值。我已经准备了一些代码,但是找不到所需的结果。
我正在尝试使用名为Cut的子函数创建OutlierTreatment函数。代码如下
def outliertreatment(df,high_limit,low_limit):
df_temp=df['y'].apply(cut,high_limit,low_limit, extra_kw=1)
return df_temp
def cut(column,high_limit,low_limit):
conds = [column > np.percentile(column, high_limit),
column < np.percentile(column, low_limit)]
choices = [np.percentile(column, high_limit),
np.percentile(column, low_limit)]
return np.select(conds,choices,column)
Run Code Online (Sandbox Code Playgroud)
我希望在OutlierTreatment函数中发送数据帧,其中95作为high_limit和5作为low_limit。如何达到预期的效果?
statewise_cases["Country"] = "Country"
print(statewise_cases)
fig = px.treemap(statewise_cases, path = ['Country', 'State'], values='Deaths')
fig.show()
Run Code Online (Sandbox Code Playgroud) 当我尝试做的时候我试图解决另一个问题在做了
pip uninstall scikit-learn
之后我收到了红色文本,例如:
pip install --upgrade pip
Error checking for conflicts.
Traceback (most recent call last):
File "c:\users\james\appdata\local\programs\python\python37\lib\site-packages\
pip\_vendor\pkg_resources\__init__.py", line 2584, in version
return self._version
File "c:\users\james\appdata\local\programs\python\python37\lib\site-packages\
pip\_vendor\pkg_resources\__init__.py", line 2691, in __getattr__
raise AttributeError(attr)
AttributeError: _version
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\users\james\appdata\local\programs\python\python37\lib\site-packages\
pip\_internal\commands\install.py", line 503, in _warn_about_conflicts
package_set, _dep_info = check_install_conflicts(to_install)
File "c:\users\james\appdata\local\programs\python\python37\lib\site-packages\
pip\_internal\operations\check.py", line 108, in check_install_conflicts
package_set, _ = create_package_set_from_installed()
File "c:\users\james\appdata\local\programs\python\python37\lib\site-packages\
pip\_internal\operations\check.py", line 47, in …Run Code Online (Sandbox Code Playgroud) 当我了解运算符概念时,我是 python 的初学者。我被困。有人可以帮我吗??为什么 in 运算符不返回 true?
list1 = [1,2,3]
list2 = [1,2,3,4,5]
print(list1 in list2)`
Run Code Online (Sandbox Code Playgroud)
相反,它返回 false。
list1 = [1,2,3]
list2 = [1,2,3]
print(list1 in list2)`
Run Code Online (Sandbox Code Playgroud)
在这两种情况下都返回 false。
我正在训练一个名为 DeWave ( https://github.com/chaodengusc/DeWave )的 Python 音频源分离模型包。它在单通道 .wav 文件上进行了训练。训练模型后,我对 .wav 样本进行了推理(以分离单声道音频测试文件中的两个扬声器源)。这工作正常,除非我剪切 .wav 文件,在这种情况下,我从 librosa 收到一个错误,指出音频缓冲区在任何地方都不是有限的。
我尝试对不同的音频文件进行推理,只有在使用外部软件剪切 .wav 文件时才会出现错误(我尝试使用 sox 和 Zamzar 进行剪切)。我成功推断的音频文件具有所有不同的长度,并且不是给定长度的倍数,所以我不认为这是长度问题。我想知道文件切割是否会擦除缓冲区,但我一般不熟悉缓冲区,因此对于如何解决此问题的任何见解都将不胜感激。
用 librosa 编写的主要代码是来自https://github.com/chaodengusc/DeWave/blob/master/DeWave/infer.py 的这些行
## restore the original audio
len1 = len(out_audio1) // 3
len2 = len(out_audio2) // 3
source1 = out_audio1[len1:2*len1]
source2 = out_audio2[len2:2*len2]
librosa.output.write_wav(input_file[0:-4]+"_source1.wav", source1, SAMPLING_RATE)
librosa.output.write_wav(input_file[0:-4]+"_source2.wav", source2, SAMPLING_RATE)
return [(source1, SAMPLING_RATE), (source2, SAMPLING_RATE)]
Run Code Online (Sandbox Code Playgroud)
预期的输出将是两个长度相同的独立 .wav 文件,每个文件中有一个扬声器,另一个扬声器正在说话时静音。但是,我收到此错误:
Traceback (most recent call last):
File "/home/<me>/anaconda3/bin/dewave-infer", line 11, in <module>
sys.exit(infer())
File "/home/<me>/anaconda3/lib/python3.6/site-packages/DeWave/cmdinfer.py", line …Run Code Online (Sandbox Code Playgroud) 我有一个基本的 OpenCV 问题。我有一个具有透明背景的图像,我想创建该图像的二元蒙版,其中透明区域为黑色,对象为白色。您能否指导我如何开始这项任务或分享一个代码片段,这将非常有帮助。图像是:
我想要实现的是二元蒙版,透明区域为黑色,物体为白色。IE
提前致谢!
python ×7
dataframe ×1
image ×1
librosa ×1
list ×1
opencv ×1
operators ×1
outliers ×1
pandas ×1
pip ×1
plotly ×1
scikit-learn ×1
sublimetext ×1
sublimetext2 ×1
sublimetext3 ×1
time-series ×1
typescript ×1
wav ×1