小编Ten*_*ero的帖子

将每个列表的数量舍入到另一个列表中最接近的数字

假设我有一个x带有数字的特定列表,另一个y带有其他数字的列表.元素y应该是元素x,但由于测量中的噪声,它们有点不同.我想找到,对于每个值y,它的值x最接近它.

我可以通过一些循环来检查,并检查每个元素y[i],哪个元素x[j]最小化abs(x[j]-y[i]),但我很确定有一个更容易,更简洁的方法来做到这一点.列表可能很大,所以我在这里寻找有效的代码.

我到目前为止编写的代码是:

x_in = [1.1, 2.2, 3, 4, 6.2]
y_in = [0.9, 2, 1.9, 6, 5, 6, 6.2, 0.5, 0, 3.1]
desired_output = [1.1, 2.2, 2.2, 6.2, 4, 6.2, 6.2, 1.1, 1.1, 3]

y_out = []

for y in y_in:
    aux = [abs(l - y) for l in x_in]
    mn,idx = min( (aux[i],i) for i in range(len(aux)) )
    y_out.append(x_in[idx])

>>> y_out …
Run Code Online (Sandbox Code Playgroud)

python big-o list rounding interval-tree

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

颜色条不遵守限制值

我有这个情节:

在此处输入图片说明

值范围从 0 到 1,但颜色条扩展到 1 以上和 0 以下。我希望颜色条不显示超出[0, 1]范围的值。如何才能做到这一点?

我的代码:

import numpy as np
import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Contour(
        z=np.random.rand(10,10),
        x=np.linspace(0,10,10),
        y=np.linspace(0,10,10),
        contours=dict(
            start=0,
            end=1,
            size=0.25,
        ),
        colorbar=dict(
            tick0=0,
            dtick=1
        )
))
fig.show()
Run Code Online (Sandbox Code Playgroud)

python plotly

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

为什么这个Python脚本在CP​​U中比在GPU中运行得更快?

我正在使用Python的库somoclu来训练使用Python的自组织地图.该库允许用户在CPU(Intel Core i7-8700)或GPU(GeForce GTX 1080 Ti)上执行培训.

我注意到CPU运行脚本的速度比GPU快,所以我进行了一次扫描,改变了数据点的数量和地图的大小,看看GPU在某些时候是否胜过CPU.这是脚本:

import numpy as np
import somoclu
import time

m = 3 # Number of dimensions
points = [5000, 30000, 80000, 150000, 300000] # Number of datapoints
iterMax = 200 # Max number of iterations
mapSize = [4, 32, 64, 128] # Dimensions of SOM
np.random.seed(0)
#%% SOM
for n in points:
    for size in mapSize:
        y = np.random.rand(n,m) # Input data
        # With CPU
        t = time.clock() # Start time
        som …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing gpu self-organizing-maps

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

matplotlib中从右到左的水平条形图

此处提供的示例代码生成此图:

在此处输入图片说明

我想知道是否可以绘制完全相同但“镜像”的内容,如下所示:

在此处输入图片说明

以下是提供的示例代码,以防链接停止工作:

import matplotlib.pyplot as plt
import numpy as np

# Fixing random state for reproducibility
np.random.seed(19680801)


plt.rcdefaults()
fig, ax = plt.subplots()

# Example data
people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))
error = np.random.rand(len(people))

ax.barh(y_pos, performance, xerr=error, align='center',
        color='green', ecolor='black')
ax.set_yticks(y_pos)
ax.set_yticklabels(people)
ax.invert_yaxis()  # labels read top-to-bottom
ax.set_xlabel('Performance')
ax.set_title('How fast do you want to go today?')

plt.show()
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib bar-chart

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

MATLAB中的字符串索引:单引号与双引号

我有一个字符串矩阵,如下所示:

readFiles = [   
            "11221", "09";
            "11222", "13";
            "12821", "06";
            "13521", "02";
            "13522", "13";
            "13711", "05";
            "13921", "01";
            "14521", ".001";
            "15712", ".003"
            ];
Run Code Online (Sandbox Code Playgroud)

这些用于自动访问某些文件夹和文件。然后,我想做的是以下操作(带有ii一些整数):

FileName = strcat('../../Datasets/hc-1/d',readFiles(ii,1),'/d',...
                     readFiles(ii,1),readFiles(ii,2),'.dat');
data(ii,:) = LoadBinary(FileName, 6);
Run Code Online (Sandbox Code Playgroud)

FileName然后使用双引号生成字符串(我不确定为什么)。因此其值为:

FileName = 

"../../Datasets/hc-1/d13921/d1392101.dat"
Run Code Online (Sandbox Code Playgroud)

LoadBinary()尝试执行以下操作时,该函数返回错误:

lastdot = strfind(FileName,'.');
FileBase = FileName(1:lastdot(end)-1); % This line 
Run Code Online (Sandbox Code Playgroud)

但是,如果我FileName使用单引号手动创建字符串,则该功能可以正常运行。

简而言之,如果我尝试索引使用FileName(1:lastdot(end)-1)上述各行创建的字符串()(导致FileName = "../../Datasets/hc-1/d13921/d1392101.dat"),则MATLAB将返回错误。如果我用单引号(FileName = '../../Datasets/hc-1/d13921/d1392101.dat')手动创建该函数,则该函数正常运行。

为什么会这样?有没有办法解决它(即将双引号字符串转换为单引号字符串)?

string matlab

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

在 Python 中使用 PMML 模型

我在互联网上找到了许多与此相关的主题,但找不到解决方案。

假设我想从此示例列表中下载任何 PMML 模型,并在 Python 中运行它们(最好是 Python 3)。有什么办法可以做到这一点吗?

我正在寻找一种方法来导入在 Python 外部部署的 PMML,并将其导入以与该语言一起使用。

python xml prediction python-3.x pmml

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

MATLAB中的通用块对角矩阵

我有一个正方形大小的矩阵C通过C,我想建立一个对角块矩阵与它重复N=2C(1+C)多次.问题是C可以改变的值,所以我不知道我是否可以使用blkdiag,因为我不知道我应该输入的参数的数量,因为矩阵的大小是用户选择的变量.我怎么能在MATLAB中做到这一点?

matlab matrix

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

如何使用 PyQt 组织布局

我对 PyQt 很陌生,我发现在窗口中订购小部件非常困难。

我有一个实时更新的绘图,一个每次用户单击绘图时都会更新的表格,以及两个按钮(开始/停止)。

当前布局的行为方式如下:

在此处输入图片说明

我希望它看起来像这样:

在此处输入图片说明

其中“其他小部件”对应于我将在此工作时添加的未来小部件(例如滑块或下拉列表)。桌子也应该尽可能的薄,以最大化地块的大小并且不让桌子占据不必要的空间。我当前的代码如下(它是独立的):

import sys
import numpy as np
from matplotlib.backends.qt_compat import QtWidgets
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure

def onclick(event):
    global clicks
    clicks.append(event.xdata)
    return

class ApplicationWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(ApplicationWindow, self).__init__()
        self._title = 'Prueba real-time'
        self.setWindowTitle(self._title)
        self._main = QtWidgets.QWidget()
        self.setCentralWidget(self._main)
        layout = QtWidgets.QHBoxLayout(self._main)

        dynamic_canvas = FigureCanvas(Figure(figsize=(10, 10)))
        layout.addWidget(dynamic_canvas)

        self._dynamic_ax = dynamic_canvas.figure.subplots()
        dynamic_canvas.figure.canvas.mpl_connect('button_press_event', onclick)
        self._dynamic_ax.grid()
        self._timer = dynamic_canvas.new_timer(
            100, [(self._update_window, (), {})])
        self._timer.start()

        button_stop = QtWidgets.QPushButton('Stop', self)
        layout.addWidget(button_stop)
        button_stop.clicked.connect(self.button_pressed)

        button_start = QtWidgets.QPushButton('Start', self)
        layout.addWidget(button_start)
        button_start.clicked.connect(self.button_pressed) …
Run Code Online (Sandbox Code Playgroud)

python pyqt widget matplotlib pyqt5

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

获取Pandas中数据框中重复行的所有ID

假设我们有一个df具有重复行的数据帧.我想存储唯一行的ID,以便每个行都有一个整数列表(它们出现在数据框中的ID).

让我举个例子:

import numpy as np
import pandas as pd

np.random.seed(0)
m = ['a','b']
M = ['X','Y']
n = np.arange(3)
size = 10
df = pd.DataFrame({'m': np.random.choice(m, size=size, replace=True),
                   'M': np.random.choice(M, size=size, replace=True),
                   'n': np.random.choice(n, size=size, replace=True)})
Run Code Online (Sandbox Code Playgroud)

这会生成以下数据帧:

   m  M  n
0  a  Y  2
1  b  X  2
2  b  X  0
3  a  Y  1
4  b  X  1
5  b  X  1
6  b  X  1
7  b  X  0
8  b  X  1
9 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

Python中的“ SystemError:<class'int'>返回带有错误集的结果”

我想使用ndimage.generic_filter()from 来应用一个非常简单的函数scipy。这是代码:

import numpy as np
import scipy.ndimage as ndimage

data = np.random.rand(400,128)
dimx = int(np.sqrt(np.size(data,0)))
dimy = dimx    
coord = np.random.randint(np.size(data,0), size=(dimx,dimy))

def test_func(values):
    idx_center = int(values[4])
    weight_center = data[idx_center]
    weights_around = data[values]
    differences = weights_around - weight_center
    distances = np.linalg.norm(differences, axis=1)
    return np.max(distances)

results = ndimage.generic_filter(coord,
                                 test_func,
                                 footprint = np.ones((3,3)))
Run Code Online (Sandbox Code Playgroud)

当我执行它时,出现以下错误:

SystemError: <class 'int'> returned a result with an error set
Run Code Online (Sandbox Code Playgroud)

当试图胁迫values[4]一个人时int。如果我在test_func()不使用ndimage.generic_filter()随机数组的情况下运行该函数values,则该函数可以正常运行。

为什么会发生此错误?有办法使它起作用吗?

python runtime-error scipy

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