小编Rom*_*man的帖子

如何在JPanel中将所有元素对齐到左侧?

我想让我的JPanel中的所有元素都对齐到左边.我试着用以下方式做到这一点:

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.setAlignmentX(Component.LEFT_ALIGNMENT);
Run Code Online (Sandbox Code Playgroud)

因此,Java使用所有元素的左侧作为元素的位置,然后将所有元素放在JPanel的中心(而不是左侧部分).

java alignment jpanel

40
推荐指数
2
解决办法
13万
查看次数

我应该如何可视化我的代码结构?

我有一个用Java编写的应用程序.In存储在多个文件中.它使用不同的类和不同的方法.代码又大又复杂.如果我有代码的图形模型(某种有向图),我认为理解代码会更容易.是否有一些标准的代码可视化方法.我正在考虑使用UML(不确定它是一个正确的选择).谁能推荐我一些东西?

添加:

我考虑两种可能性:

  1. 手动创建图形(显式).
  2. 以自动方式创建图形.例如,使用一些工具来读取可用代码并生成一些描述代码结构的图形.

增加2:

有免费的东西会很高兴.

java schema uml code-visualization code-structure

39
推荐指数
5
解决办法
2万
查看次数

如何在pandas中使用group by时将"first"和"last"函数应用于列?

我有一个数据框,我想按特定列(或换句话说,来自特定列的值)对其进行分组.我可以通过以下方式完成:grouped = df.groupby(['ColumnName']).

我把这个操作的结果想象成一个表,其中一些单元格可以包含多组值而不是单个值.为了得到一个通常的表(即每个单元格只包含一个单个值的表),我需要指出我想用什么函数将单元格中的值集转换为单个值.

例如,我可以用它们的总和或它们的最小值或最大值来替换值集.我可以通过以下方式完成:grouped.sum()或者grouped.min()依此类推.

现在我想为不同的列使用不同的函数.我发现我可以通过以下方式实现:grouped.agg({'ColumnName1':sum, 'ColumnName2':min}).

但是,由于某些原因我无法使用first.更多细节,grouped.first()作品,但grouped.agg({'ColumnName1':first, 'ColumnName2':first})不起作用.结果我得到一个NameError : NameError: name 'first' is not defined. 所以,我的问题是:为什么会发生以及如何解决这个问题.

添加

在这里,我找到了以下示例:

grouped['D'].agg({'result1' : np.sum, 'result2' : np.mean})
Run Code Online (Sandbox Code Playgroud)

可能我还需要使用np?但在我的情况下,python不识别"np".我应该导入吗?

python group-by pandas

35
推荐指数
2
解决办法
3万
查看次数

如何预测scikit-learn中的时间序列?

Scikit-learn采用了一种非常方便的方法fitpredict方法.我有适合fit和的格式的时间序列数据predict.

例如,我有以下内容Xs:

[[1.0, 2.3, 4.5], [6.7, 2.7, 1.2], ..., [3.2, 4.7, 1.1]]
Run Code Online (Sandbox Code Playgroud)

和相应的ys:

[[1.0], [2.3], ..., [7.7]]
Run Code Online (Sandbox Code Playgroud)

这些数据具有以下含义.存储的值ys形成时间序列.值Xs是对应的时间相关"因子",已知这些因素对值ys(例如:温度,湿度和大气压力)有一些影响.

现在,当然,我可以使用fit(Xs,ys).但后来我得到了一个模型,其中未来的值ys仅依赖于因子,并且不依赖于先前的Y值(至少直接),这是模型的限制.我想有其中一个模型Y_n也依赖Y_{n-1}Y_{n-2}等.例如,我可能想使用指数移动平均线作为模型.在scikit-learn中最优雅的方法是什么

添加

正如评论中提到的那样,我可以Xs通过添加来扩展ys.但这种方式有一些局限性.例如,如果我将最后5个值添加y为5个新列X,则有关时间排序的信息ys将丢失.例如,没有迹象表明X第5列中的值跟随第4列中的值,依此类推.作为一个模型,我可能希望得到最后五个的线性拟合,ys并使用找到的线性函数进行预测.但如果我在5列中有5个值,那就不是那么简单了.

增加2

为了使我的问题更加清楚,我想举一个具体的例子.我想有一个"线性"模型y_n = c + k1*x1 + k2*x2 + k3*x3 + k4*EMOV_n,其中EMOV_n只是一个指数移动平均线.怎样,我可以在scikit-learn中实现这个简单的模型吗?

python machine-learning time-series scikit-learn

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

在C中使用varargs的一个例子

在这里,我找到了如何在C中使用varargs的示例.

#include <stdarg.h>

double average(int count, ...)
{
    va_list ap;
    int j;
    double tot = 0;
    va_start(ap, count); //Requires the last fixed parameter (to get the address)
    for(j=0; j<count; j++)
        tot+=va_arg(ap, double); //Requires the type to cast to. Increments ap to the next argument.
    va_end(ap);
    return tot/count;
}
Run Code Online (Sandbox Code Playgroud)

我只能在某种程度上理解这个例子.

  1. 我不清楚为什么使用它们va_start(ap, count);.据我所知,通过这种方式我们将迭代器设置为它的第一个元素.但是为什么默认情况下它没有设置到开头?

  2. 我不清楚为什么我们需要count作为一个论点.C不能自动确定参数的数量?

  3. 我不清楚为什么使用它们va_end(ap).它有什么变化?它是否将迭代器设置为列表的末尾?但它是不是通过循环设置到列表的末尾?而且,为什么我们需要它呢?我们不再使用ap了; 我们为什么要改变它?

c syntax variadic-functions

34
推荐指数
3
解决办法
4万
查看次数

为什么我会收到"未处理的异常类型IOException"?

我有以下简单的代码:

import java.io.*;
class IO {
    public static void main(String[] args) {    
       BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));    
       String userInput;    
       while ((userInput = stdIn.readLine()) != null) {
          System.out.println(userInput);
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

----------
1. ERROR in io.java (at line 10)
    while ((userInput = stdIn.readLine()) != null) {
                        ^^^^^^^^^^^^^^^^
Unhandled exception type IOException
----------
1 problem (1 error)roman@roman-laptop:~/work/java$ mcedit io.java 
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?我只是想简化总和网站上给出的代码(这里).我过度简化了吗?

java stdin readline ioexception

33
推荐指数
3
解决办法
16万
查看次数

ContentPane和JPanel之间有什么关系?

我找到了一个例子,其中按钮被添加到面板(实例JPanel),然后面板被添加到容器(由其生成的实例getContentPane()),然后容器被构造包括在JFrame(窗口)中.

我尝试了两件事:

  1. 我摆脱了容器.更详细地说,我向面板(实例JPanel)添加了按钮,然后我将面板添加到了窗口(实例JFrame).它工作正常.

  2. 我摆脱了面板.更详细地说,我直接将按钮添加到容器中,然后将容器添加到窗口(实例JFrame).

所以,我不明白两件事.

  1. 为什么我们有两个竞争机制来做同样的事情?

  2. 将容器与面板(JPanel)结合使用的原因是什么?(例如,我们在JPanels中包含按钮,然后在Containers中包含JPanels).我们可以JPanel加入JPanel吗?我们可以在容器中包含容器吗?

添加:

也许我的问题的本质可以放在一行代码中:

frame.getContentPane().add(panel);
Run Code Online (Sandbox Code Playgroud)

我们介入什么getContentPane()?我试过frame.add(panel);,它工作正常.

增加2:

我想添加一些代码来更清楚我的意思.在这个例子中我只使用JPane:

import java.awt.*;
import javax.swing.*;
public class HelloWorldSwing {
    public static void main(String[] args) {
        JFrame frame = new JFrame("HelloWorldSwing");
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());        
        panel.add(new JButton("W"), BorderLayout.NORTH);
        panel.add(new JButton("E"), BorderLayout.SOUTH);
        frame.add(panel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我只使用内容窗格:

import java.awt.*;
import javax.swing.*;
public class …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing jpanel jframe

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

Collections.unmodifiableSet()在Java中做了什么?

我可以看到Collections.unmodifiableSet返回给定集合的不可修改的视图但我不明白为什么我们不能只使用final修饰符来完成此操作.

在我的理解中,final声明一个常量:无法修改的东西.因此,如果将一个集合声明为常量,则无法修改它:无法从集合中删除任何内容,也无法添加任何内容.

我们为什么需要Collections.unmodifiableSet

java final unmodifiable

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

如何在Python中使用OpenCV?

我刚刚在Windows 7机器上安装了OpenCV.结果,我得到一个新目录:

C:\OpenCV2.2\Python2.7\Lib\site-packages

在这个目录中,我有两个文件:cv.libcv.pyd.

然后我尝试使用opencvPython.我做以下事情:

import sys
sys.path.append('C:\OpenCV2.2\Python2.7\Lib\site-packages')
import cv
Run Code Online (Sandbox Code Playgroud)

因此,我收到以下错误消息:

File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

添加

正如在这里推荐的那样,我已将内容复制C:\OpenCV2.0\Python2.6\Lib\site-packages到了C:\Python26\Lib\site-packages.它没有帮助.

增加2

我的环境变量具有以下值:

Path=C:\Program Files\MiKTex\miktex\bin;C:\OpenCV2.2\bin;C:\Python26;
PYTHONPATH=C:\OpenCV2.2\Python2.7\Lib\site-packages
Run Code Online (Sandbox Code Playgroud)

我需要改变什么吗?我需要添加一些东西吗?

增加3

我认为我的问题很普遍:如何使用图书馆?可能我需要在某处找到*.ddl文件?那么我需要使用包含此文件的目录的名称作为某些环境变量的值吗?或者我可能需要使用sys.addpath?我还需要知道调用库的方式与包含库的文件的名称有什么关系.

增加4

有趣的是,当我输入时import cv,我得到:

ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

但是当我输入时,import opencv我得到:

ImportError: No module named opencv
Run Code Online (Sandbox Code Playgroud)

增加5

有人建议我使用不一致的python版本.更详细的说,OpenCV尝试使用Python2.7,我有Python2.6.所以,我已经安装了Python …

python opencv python-import importerror

30
推荐指数
2
解决办法
7万
查看次数

如何从pandas数据框中选择一个值是否在列表中?

看起来很难看:

df_cut = df_new[
             (
             (df_new['l_ext']==31) |
             (df_new['l_ext']==22) |
             (df_new['l_ext']==30) |
             (df_new['l_ext']==25) |
             (df_new['l_ext']==64)
             )
            ]
Run Code Online (Sandbox Code Playgroud)

不起作用:

df_cut = df_new[(df_new['l_ext'] in [31, 22, 30, 25, 64])]
Run Code Online (Sandbox Code Playgroud)

是否有上述"问题"的优雅和有效解决方案?

python select numpy dataframe pandas

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