小编MoT*_*GGE的帖子

Python:如何在某些索引位置获取数组的值?

我有一个像这样的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)

python arrays indexing numpy

15
推荐指数
4
解决办法
7万
查看次数

matplotlib.pyplot.subplots() - 如何设置图的名称?

当我使用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)

那么如何设置图形的名称?

python matplotlib

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

如何使用Python多处理Pool.map在for循环中填充numpy数组

我想在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核心,但执行没有完成,并且不打印数组.如果我尝试将数组写入磁盘,则没有任何反应.

谁能告诉我为什么?

python arrays numpy pool multiprocessing

9
推荐指数
2
解决办法
8036
查看次数

查找3D阵列符合MULTIPLE条件的索引位置

我有一个由每个波段内的几个数字组成的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)

python arrays numpy

8
推荐指数
3
解决办法
4962
查看次数

Tkinter GUI:根据另一个选项菜单中的选项更新选项菜单的选项

我构建了一个由多个下拉菜单组成的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)

python tkinter drop-down-menu

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