我有一些我在Python和Matlab之间共享的数据.我曾经通过在MATLAB风格的.mat文件中保存NumPy数组来做到这一点,但是想切换到HDF5数据集.但是,我注意到一个有趣的特性:当我将NumPy数组保存在HDF5文件中(使用h5py)然后在Matlab中读取它(使用h5read)时,它最终会被转置.有什么我想念的吗?
Python代码:
import numpy as np
import h5py
mystuff = np.random.rand(10,30)
f = h5py.File('/home/user/test.h5', 'w')
f['mydataset'] = mystuff
f.close()
Run Code Online (Sandbox Code Playgroud)
Matlab代码:
mystuff = h5read('/home/user/test.h5', '/mydataset');
size(mystuff) % 30 by 10
Run Code Online (Sandbox Code Playgroud) 我有一个资源(Spring bean),它的一些字段由Spring注入,例如:
@Repository(value="appDao")
public class AppDaoImpl implements AppDao {
@PersistenceContext
EntityManager entityManager;
public Resource() {
... use entityManager ... // doesn't work
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我不能在构造函数中访问注入的entityManager,并且应该@PostConstruct在不同的方法上使用注释.但是这有什么原因呢?
我有一个正则表达式定义感兴趣的文件名.列出符合此条件的目录中的所有文件的最佳方法是什么?
我的尝试是:
f = dir(DIR);
f = {f([f.isdir] == 0).name};
result = f(~cellfun(@isempty, regexpi(f, '.*(avi|mp4)')));
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否有更快和/或更清洁的解决方案呢?
是否可以简化它,如果不是正则表达式,我只有一个可能的文件扩展名列表?
我正在使用JPA/Hibernate和Spring开发我的第一个应用程序.我在DAO课上的第一次尝试看起来像这样:
@Repository(value = "userDao")
public class UserDaoJpa implements UserDao {
@PersistenceContext
private EntityManager em;
public User getUser(Long id) {
return em.find(User.class, id);
}
public List getUsers() {
Query query = em.createQuery("select e from User e");
return query.getResultList();
}
}
Run Code Online (Sandbox Code Playgroud)
我还发现了一些使用JpaDaoSupport和的例子JpaTemplate.你更喜欢哪种设计?我的例子有什么问题吗?
我正在尝试使用Maven Failsafe插件来运行此配置的集成测试:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.7.1</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8080</port>
<maxIdleTime>3600000</maxIdleTime>
</connector>
</connectors>
<contextPath>/</contextPath>
<scanIntervalSeconds>3</scanIntervalSeconds>
<scanTargetPatterns>
<scanTargetPattern>
<directory>src/main/webapp/WEB-INF</directory>
<excludes>
<exclude>**/*.jsp</exclude>
<exclude>**/*.html</exclude>
</excludes>
<includes>
<include>**/*.page</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</scanTargetPattern>
</scanTargetPatterns>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run-war</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
一切都很好,直到Jetty在预集成测试阶段开始.然后没有任何事情发生,好像在等待什么.最后一行说:
[INFO] Started Jetty Server
如何让测试在之后开始?我用maven运行maven mvn verify.
要将数据发送到我的FTP服务器上的文件,我需要创建一个自定义的InputStream实现,逐行读取数据库数据,将其转换为CSV并通过其read()方法发布它:从数据库中,我得到一个List<Application>对象数据.对于每个Application对象,我想在CSV文件中创建一行.
我的想法是在构造函数中加载所有数据,然后覆盖read方法.我是否需要覆盖所有InputStream的方法?我尝试谷歌搜索一些例子,但没有成功 - 你最终能给我一个链接吗?
A 有一个n x m矩阵,其中 rowi表示变量的时间序列V_i。我想计算n x n相关矩阵M,其中M_{i,j}包含的相关系数(皮尔森r之间)V_i和V_j。
但是,当我在 numpy 中尝试以下操作时:
numpy.corrcoef(numpy.matrix('5 6 7; 1 1 1'))
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
array([[ 1., nan],
[ nan, nan]])
Run Code Online (Sandbox Code Playgroud)
似乎numpy.corrcoef不喜欢单位向量,因为如果我将第二行更改为 ,则会7 6 5得到预期的结果:
array([[ 1., -1.],
[ -1., 1.]])
Run Code Online (Sandbox Code Playgroud)
这种行为的原因是numpy.corrcoef什么?
我有一个3D数组,用于np.where查找满足特定条件的元素.输出np.where是三个1D阵列的元组,每个阵列沿单个轴给出索引.我想迭代这个输出并打印出满足条件的矩阵中每个点的索引.
一种方法是:
indices = np.where(myarray == 0)
for i in range(0, len(indices[0])):
print indices[0][i], indices[1][i], indices[2][i]
Run Code Online (Sandbox Code Playgroud)
然而,它看起来有点麻烦,我想知道是否有更好的方法?
我使用 POP3 从 Gmail 帐户下载邮件并将其保存在 SQLite 数据库中以供进一步处理:
mailbox = poplib.POP3_SSL('pop.gmail.com', '995')
mailbox.user(user)
mailbox.pass_(password)
msgnum = mailbox.stat()[0]
for i in range(msgnum):
msg = '\n'.join(mailbox.retr(i+1)[1])
save_message(msg, dbmgr)
mailbox.quit()
Run Code Online (Sandbox Code Playgroud)
但是,在数据库中查找时,除了消息正文(有效负载)的最后一行之外,所有行都有尾随等号。你知道为什么会发生这种情况吗?