根据这个转换表,当使用JSON模块进行序列化时,Python int会被编写为JSON数字 - 正如我所期望的那样.
我有一个带整数键和整数值的字典:
>>> d = {1:2}
>>> type(d.items()[0][0])
<type 'int'>
>>> type(d.items()[0][1])
<type 'int'>
Run Code Online (Sandbox Code Playgroud)
当我使用json模块将其序列化为JSON字符串时,该值被写为数字,但键被写为字符串:
>>> json.dumps(d)
'{"1": 2}'
Run Code Online (Sandbox Code Playgroud)
这不是我想要的行为,它似乎特别破碎,因为它打破了json.dumps/json.loads round-tripping:
>>> d == json.loads(json.dumps(d))
False
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,有没有办法可以强制将密钥写成数字?
JUnit的TemporaryFolder规则的文档声明它创建了文件和文件夹
"保证在测试方法完成时删除(无论是通过还是失败)"
但是,断言TemporaryFolder不存在会失败:
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
public class MyTest {
@Rule
public TemporaryFolder _tempFolder = new TemporaryFolder();
@After
public void after() {
assertFalse(_tempFolder.getRoot().exists()); //this assertion fails!
}
@Test
public void pass() throws IOException {
assertTrue(true);
}
Run Code Online (Sandbox Code Playgroud)
我也看到文件确实存在于文件系统中.
为什么这不会被删除?
我有一个目录bar
的目录里面foo
,使用文件foo_file.txt
目录foo
和文件bar_file.txt
目录bar
; 即
computer$ ls
foo/
computer$ ls foo/
bar/ foo_file.txt
computer$ ls foo/bar/
bar_file.txt
Run Code Online (Sandbox Code Playgroud)
使用python os.path.relpath函数,我期望:
os.path.relpath('foo/bar/bar_file.txt', 'foo/foo_file.txt')
Run Code Online (Sandbox Code Playgroud)
给我:
'bar/bar_file.txt'
Run Code Online (Sandbox Code Playgroud)
但是,它实际上给了我:
'../bar/bar_file.txt'
Run Code Online (Sandbox Code Playgroud)
为什么是这样?有没有一种简单的方法来获得我想要的行为?
编辑:这是在Linux上使用Python 2.7.3
我有一个大的(约14,000 x 14,000)方阵,表示为Numpy ndarray
.我希望提取大量的行和列 - 我事先知道的索引,尽管它实际上是所有行和列都不是全零 - 以获得一个新的方阵(大约10,000 x 10,000).
我发现这样做的最快方法是:
> timeit A[np.ix_(indices, indices)]
1 loops, best of 3: 6.19 s per loop
Run Code Online (Sandbox Code Playgroud)
但是,这比进行矩阵乘法所需的时间要慢得多:
> timeit np.multiply(A, A)
1 loops, best of 3: 982 ms per loop
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为行/列提取和矩阵乘法都需要分配一个新数组(矩阵乘法的结果比提取的结果更大),但矩阵乘法也需要执行额外的计算.
因此,问题是:是否有更有效的方法来执行提取,特别是至少与矩阵乘法一样快?
R qchisq
函数将p值和自由度数转换为相应的卡方值.是否有一个具有等效的Python库?
我没有找到任何东西就在SciPy中四处看看.
我的Jekyll支持的网站的源代码存在于一个git仓库中,但该网站还需要有一些太大的静态文件,这些文件太大而无法进行版本控制.因此,它们不是Jekyll构建管道的一部分.
我希望这些只是简单地生活在assets
Jekyll目的地的一个目录中(这是一个服务器目录;请注意我在这里没有对服务器的任何控制;我所能做的就是将静态文件转储到指定的目录中) git repo中不存在.但是,运行jekyll build
会删除输出目录中的所有内容.
在这种情况下,有没有办法改变杰基尔的行为?还是有其他一些好方法来处理这个问题?
python ×4
scipy ×2
chi-squared ×1
java ×1
jekyll ×1
json ×1
junit ×1
numpy ×1
optimization ×1
os.path ×1
path ×1
performance ×1
r ×1
statistics ×1