我想让我的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编写的应用程序.In存储在多个文件中.它使用不同的类和不同的方法.代码又大又复杂.如果我有代码的图形模型(某种有向图),我认为理解代码会更容易.是否有一些标准的代码可视化方法.我正在考虑使用UML(不确定它是一个正确的选择).谁能推荐我一些东西?
添加:
我考虑两种可能性:
增加2:
有免费的东西会很高兴.
我有一个数据框,我想按特定列(或换句话说,来自特定列的值)对其进行分组.我可以通过以下方式完成: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".我应该导入吗?
Scikit-learn采用了一种非常方便的方法fit
和predict
方法.我有适合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中实现这个简单的模型吗?
在这里,我找到了如何在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)
我只能在某种程度上理解这个例子.
我不清楚为什么使用它们va_start(ap, count);
.据我所知,通过这种方式我们将迭代器设置为它的第一个元素.但是为什么默认情况下它没有设置到开头?
我不清楚为什么我们需要count
作为一个论点.C不能自动确定参数的数量?
我不清楚为什么使用它们va_end(ap)
.它有什么变化?它是否将迭代器设置为列表的末尾?但它是不是通过循环设置到列表的末尾?而且,为什么我们需要它呢?我们不再使用ap
了; 我们为什么要改变它?
我有以下简单的代码:
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)
有人有什么想法吗?我只是想简化总和网站上给出的代码(这里).我过度简化了吗?
我找到了一个例子,其中按钮被添加到面板(实例JPanel
),然后面板被添加到容器(由其生成的实例getContentPane()
),然后容器被构造包括在JFrame
(窗口)中.
我尝试了两件事:
我摆脱了容器.更详细地说,我向面板(实例JPanel
)添加了按钮,然后我将面板添加到了窗口(实例JFrame
).它工作正常.
我摆脱了面板.更详细地说,我直接将按钮添加到容器中,然后将容器添加到窗口(实例JFrame
).
所以,我不明白两件事.
为什么我们有两个竞争机制来做同样的事情?
将容器与面板(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) 我可以看到Collections.unmodifiableSet
返回给定集合的不可修改的视图但我不明白为什么我们不能只使用final
修饰符来完成此操作.
在我的理解中,final
声明一个常量:无法修改的东西.因此,如果将一个集合声明为常量,则无法修改它:无法从集合中删除任何内容,也无法添加任何内容.
我们为什么需要Collections.unmodifiableSet
?
我刚刚在Windows 7机器上安装了OpenCV.结果,我得到一个新目录:
C:\OpenCV2.2\Python2.7\Lib\site-packages
在这个目录中,我有两个文件:cv.lib
和cv.pyd
.
然后我尝试使用opencv
Python.我做以下事情:
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 …
看起来很难看:
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)
是否有上述"问题"的优雅和有效解决方案?
java ×5
python ×4
jpanel ×2
pandas ×2
alignment ×1
c ×1
dataframe ×1
final ×1
group-by ×1
importerror ×1
ioexception ×1
jframe ×1
numpy ×1
opencv ×1
readline ×1
schema ×1
scikit-learn ×1
select ×1
stdin ×1
swing ×1
syntax ×1
time-series ×1
uml ×1
unmodifiable ×1