我有一个像这样的numpy数组:
a = [0,88,26,3,48,85,65,16,97,83,91]
Run Code Online (Sandbox Code Playgroud)
如何在一步中获得某些指数位置的值?例如:
ind_pos = [1,5,7]
Run Code Online (Sandbox Code Playgroud)
结果应该是:
[88,85,16]
Run Code Online (Sandbox Code Playgroud) 当我使用PyPlot的figure()函数创建单个图时,我可以使用字符串作为参数设置出现窗口的名称:
import matplotlib.pyplot as plt
figure = plt.figure('MyName')
Run Code Online (Sandbox Code Playgroud)
函数plt.subplots()不接受字符串作为第一个参数.例如:
plt.subplots(2,2) # for creating a window with 4 subplots
Run Code Online (Sandbox Code Playgroud)
那么如何设置图形的名称?
我想在for循环中填充2D-numpy数组,并使用多处理来固定计算.
import numpy
from multiprocessing import Pool
array_2D = numpy.zeros((20,10))
pool = Pool(processes = 4)
def fill_array(start_val):
return range(start_val,start_val+10)
list_start_vals = range(40,60)
for line in xrange(20):
array_2D[line,:] = pool.map(fill_array,list_start_vals)
pool.close()
print array_2D
Run Code Online (Sandbox Code Playgroud)
执行它的效果是Python运行4个子进程并占用4个CPU核心,但执行没有完成,并且不打印数组.如果我尝试将数组写入磁盘,则没有任何反应.
谁能告诉我为什么?
我有一个由每个波段内的几个数字组成的3D阵列.是否有一个函数返回数组符合MULTIPLE条件的索引位置?
我尝试了以下方法:
index_pos = numpy.where(
array[:,:,0]==10 and array[:,:,1]==15 and array[:,:,2]==30)
Run Code Online (Sandbox Code Playgroud)
它返回错误:
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
Run Code Online (Sandbox Code Playgroud) 我构建了一个由多个下拉菜单组成的Tkinter-GUI,它为一个可以通过点击GUI按钮运行的函数提供一些参数.问题是这个功能只能用几个参数组合来执行(不是每种组合都可以).因此,我希望GUI根据第一个下拉菜单中的选项自动更新其下拉菜单中的选项列表.
我有一个函数,可以在选项A设置为某个值的条件下导出选项B,C,D,E的可能参数值,但我不知道如何更新由选项A显示的选项GUI.
是否有Tkinter功能可用于实现GUI选项菜单中选项的自动更新?
编辑:
这是我试过的脚本.它似乎充满了bug但我认为它可以说明我想要做的事情:
choices4option1 = [1,2,3]
choices4option2 = [4,5,6]
choices4option3 = [7,8,9]
def update_GUI_choices(option):
if option == 'option1':
if GUI_options.option1.get()==1:
global choices4option2
choices4option2 = [4,5]
else: pass
elif option == 'option2':
if GUI_options.option2.get()==4:
global choices4option3
choices4option3 = [8,9]
else: pass
else: pass
# GUI
import Tkinter as tk
GUI = tk.Tk()
class GUI_options:
option1 = tk.IntVar(GUI)
option1.set('choose a value')
option2 = tk.IntVar(GUI)
option2.set('choose a value')
option3 = tk.IntVar(GUI)
option3.set('choose a value')
om_option1 = tk.OptionMenu(GUI, GUI_options.option1, *choices4option1)
om_option1.grid(column=0, row=0) …
Run Code Online (Sandbox Code Playgroud)