我将运行大量模拟,产生大量需要存储的数据,以后再次访问.我的模拟程序的输出数据被写入文本文件(每个模拟一个).我计划编写一个Python程序来读取这些文本文件,然后以更便于以后分析的格式存储数据.经过相当多的搜索,我认为我正在遭受信息过载,所以我将这个问题提交给Stack Overflow以获取一些建议.以下是详细信息:
我的数据基本上采用多维数组的形式,其中每个条目看起来像这样:
data[ stringArg1, stringArg2, stringArg3, stringArg4, intArg1 ] = [ floatResult01, floatResult02, ..., floatResult12 ]
Run Code Online (Sandbox Code Playgroud)
每个参数大致具有以下数量的潜在值:
stringArg1:50
stringArg2:20
stringArg3:6
stringArg4:24
intArg1:10,000
但请注意,数据集将是稀疏的.例如,对于stringArg1的给定值,将仅填充大约16个stringArg2值.此外,对于(stringArg1,stringArg2)的给定组合,将填充大约5000个intArg1值.第3和第4个字符串参数是总是充满了.
因此,使用这些数字,我的数组将有大约50*16*6*24*5000 = 576,000,000个结果列表.
我正在寻找存储此数组的最佳方法,以便我可以保存它并稍后重新打开它以添加更多数据,更新现有数据或查询现有数据进行分析.到目前为止,我已经研究了三种不同的方法:
关系数据库
PyTables
使用元组作为字典键的Python字典(使用pickle来保存和重新加载)
我在这三种方法中遇到了一个问题,我总是最终存储(stringArg1,stringArg2,stringArg3,stringArg4,intArg1)的每个元组组合,作为表中的字段,或者作为Python字典中的键.从我(可能是天真的)的角度来看,似乎这不应该是必要的.如果这些都是整数参数,那么它们只会形成数组中每个数据条目的地址,并且不需要将所有潜在的地址组合存储在单独的字段中.例如,如果我有一个2x2数组= [[100,200],[300,400]],你可以通过询问地址数组[0] [1]的值来检索值.您不需要在其他地方存储所有可能的地址元组(0,0)(0,1)(1,0)(1,1).所以我希望找到解决这个问题的方法.
我希望能够做的是在PyTables中定义一个表,其中第一个表中的单元格包含其他表.例如,顶级表将有两列.第一列中的条目将是stringArg1的可能值.第二列中的每个条目都是一个表.这些子表将有两列,第一列是stringArg2的所有可能值,第二列是另一列子子表......
这种解决方案可以直接浏览和查询(特别是如果我可以使用ViTables浏览数据).问题是PyTables似乎不支持让一个表的单元格包含其他表格.所以我似乎在那里遇到了死胡同.
我一直在阅读数据仓库和星型模式方法,但看起来你的事实表似乎需要包含每个可能的参数组合的元组.
好的,所以我几乎就是这样.任何和所有建议将非常感谢.在这一点上,我一直在寻找我的大脑疼痛.我觉得是时候问专家了.
我想HTML字符实体转换喜欢
&到&或
>以>
对于Perl存在的包HTML :: Entities可以做到这一点,但我在R中找不到类似的东西.
我也尝试过iconv()但无法获得令人满意的结果.也许还有一种方法可以使用这个XML包,但我还没想出来.
我正在编写一个非常简单的2D碰撞响应算法(幸运的是),但即使是非常简单的几何概念也让我感到困惑.一直在学习!但...
在这种情况下,它的向量:
如果一个物体撞击一块几何体,我想在与几何体壁的法线平行的方向上完全消除该物体的动量.幸运的是,没有任何摩擦或反弹,但即便如此,我仍然不确定如何找到一个能够完全否定正常动量的矢量.
先感谢您!
我正在尝试自学Zend Framework.我在使用自定义框架方面有一些丰富的经验,但从未使用过Zend.这就像尝试使用带有连指手套的刀叉一样.
我有一个系统启动并运行.正在applition.ini文件中创建数据库连接而没有错误.
我的目的是尝试使用此连接到数据库来执行基本SQL.application.ini有以下几行:
db.adapter = PDO_MYSQL
db.params.host = localhost
db.params.username = cpanel_dbuser
db.params.password = 123456
db.params.dbname = cpanel_dbname
Run Code Online (Sandbox Code Playgroud)
我正在尝试连接到/public/index.php中的数据库
$config = new Zend_Config_Ini(APPLICATION_PATH .
'/configs/application.ini', 'production');
$application->db = Zend_Db::factory($config->db);
Zend_Db_Table::setDefaultAdapter($db);
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Fatal error: Uncaught exception 'Zend_Db_Exception' with message 'Adapter name must be specified in a string' in /home/path/library/Zend/Db.php:226
Stack trace:
#0 /home/path/public/index.php(32): Zend_Db::factory(Array)
#1 {main} thrown in /home/path/library/Zend/Db.php on line 226
Run Code Online (Sandbox Code Playgroud)
如果我print_r Config对象
Zend_Config Object
(
[_allowModifications:protected] =>
[_index:protected] => 0
[_count:protected] => 2
[_data:protected] => Array
(
[adapter] …Run Code Online (Sandbox Code Playgroud) 是否有YAML的架构验证语言?我用谷歌搜索,但找不到任何有用的东西.
XSD格式之类的东西,使用语言本身来描述模式,在我的情况下是最好的选择.
我正在编写一个包含许多选项的配置菜单,我想在主PreferenceScreen中添加一个可以启动其他PreferenceScreen的选项.
我无法弄清楚如何创建一个通用的菜单项(所以,也没有EditTextPreference或CheckBoxPreference等)
谢谢大家.
我必须在haskell中编写一个函数来检查两个二进制树是否是彼此的镜像.这是我到目前为止,但我不知道True && isMirrorImages l1 r2 && areMirrorImages r1 l2是否是正确的方法.我试图用递归调用areMirrorImages函数的结果来逻辑AND True.
-- Tests whether two BinaryTrees are mirror images of one another
areMirrorImages :: (Eq (BinaryTree a), Eq a) => BinaryTree a -> BinaryTree a -> Bool
areMirrorImages Empty Empty = True
areMirrorImages _ Empty = False
areMirrorImages Empty _ = False
areMirrorImages (Node x1 left1 right1) (Node x2 left2 right2) =
if (x1 == x2 && left1 == right2 && right1 == left2)
then True && (areMirrorImages left1 right2) && …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用JPA + Hibernate访问MySQL数据库的独立服务器.
当我启动服务器时,一切正常.然而,过了一段时间(通常是第二天早上,如果我在下午开始),它将停止工作,因为显然与MySQL的连接已关闭(我SocketException在日志中看到很多s).这可能是由于空闲,服务器正在开发而没有人在晚上使用它.
我认为Hibernate,JDBC或我应用程序下面的其他一些层将管理连接并在必要时重新打开它,但显然不是.我错过了配置参数吗?
persistence.xml
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"version ="2.0">
<persistence-unit name="manager">
<class>example.data.entities.User</class>
<class>example.data.entities.Player</class>
<properties>
<property name="hibernate.dialect" value="example.data.HibernateDialect" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
</properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)
EntityManagerFactory 创建
log.info("Connecting to database @ " + dbUrl + " using " + dbUser + "/" + dbPass);
emf = Persistence.createEntityManagerFactory("manager", Maps.create(
"javax.persistence.jdbc.user", dbUser,
"javax.persistence.jdbc.password", dbPass,
"javax.persistence.jdbc.url", dbUrl
));
Run Code Online (Sandbox Code Playgroud)
一个问题
try
{
TypedQuery<User> q = em.createQuery("SELECT u FROM User u WHERE u.email = :mail", User.class);
q.setParameter("mail", …Run Code Online (Sandbox Code Playgroud) 根据维基http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol,xmpp使用http绑定(而不是http池)将消息推送到客户端.
任何人都可以向我解释它是如何工作的吗?
我有以下情况如下:
class Base
{
public static int x;
public int myMethod()
{
x += 5;
return x;
}
}
class DerivedA : Base
{
}
class DerivedB : Base
{
}
Run Code Online (Sandbox Code Playgroud)
我试图设置它,以便每个派生类都有自己的静态x实例,如果我做这样的事情:
DerivedA.x = 5;
DerivedB.x = 10;
Run Code Online (Sandbox Code Playgroud)
然后当我跑:
DerivedA.myMethod(); //The result will be 10
DerivedB.myMethod(); //The reusult will be 15
Run Code Online (Sandbox Code Playgroud)
我可以这样做吗?如何设置派生类来实现这一目标?多谢你们.
编辑:基本上,我有一堆派生类,每个类都有一个该类独有的属性.它不会因每个实例而异,因此我认为应该是一个静态变量.此外,该属性由方法设置,对于每个类都是相同的.我试图避免在每个派生类中复制和粘贴该属性和方法的逻辑.我认为最好以某种方式将该逻辑移动到从中派生每个类的基类.但是,我需要每个派生类都有自己的属性副本.我不一定要这样做,如果你们有任何好的话,我会很高兴听到一些更好的做法建议..谢谢!