小编sam*_*sam的帖子

JUnit @Before vs @Rule

我明白那个,

  • @Before并分别@BeforeClass在每个测试或整个测试类之前运行
  • @Rule并分别@ClassRule包装每个测试或整个测试类.

假设我需要在每个测试方法之前初始化一些数据,

我如何决定使用@Before@Rule?在什么条件下优先于另一种?同样的问题也无二@BeforeClass对比@ClassRule.

java junit junit4

29
推荐指数
2
解决办法
8844
查看次数

如何使用pylab和numpy将正弦曲线拟合到我的数据中?

对于一个学校项目,我试图表明经济遵循相对正弦的增长模式.除了它的经济学,这是不确定的,我正在构建一个python模拟,以表明,即使我们让某种程度的随机性保持不变,我们仍然可以产生一些相对正弦的东西.我对我正在制作的数据感到满意,但现在我想找到一些方法来获得与数据非常匹配的正弦图.我知道你可以做多项式拟合,但你能做正确的吗?

感谢您的帮助.如果您想要查看代码的任何部分,请告诉我.

python trigonometry numpy economics

26
推荐指数
5
解决办法
6万
查看次数

Python:设置Numpy矩阵的元素

我是python的新手.我创建了一个空矩阵

a = numpy.zeros(shape=(n,n))
Run Code Online (Sandbox Code Playgroud)

现在我可以使用访问每个元素

a.item(i,j)
Run Code Online (Sandbox Code Playgroud)

如何设置索引(i,j)?

python numpy

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

将Numpy数组转换为OpenCV数组

我正在尝试将表示黑白图像的2D Numpy阵列转换为3通道OpenCV阵列(即RGB图像).

基于代码示例和我试图通过Python执行此操作的文档,如:

import numpy as np, cv
vis = np.zeros((384, 836), np.uint32)
h,w = vis.shape
vis2 = cv.CreateMat(h, w, cv.CV_32FC3)
cv.CvtColor(vis, vis2, cv.CV_GRAY2BGR)
Run Code Online (Sandbox Code Playgroud)

但是,对CvtColor()的调用抛出了以下cpp级异常:

OpenCV Error: Image step is wrong () in cvSetData, file /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp, line 902
terminate called after throwing an instance of 'cv::Exception'
  what():  /build/buildd/opencv-2.1.0/src/cxcore/cxarray.cpp:902: error: (-13)  in function cvSetData

Aborted
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python opencv numpy image-processing

24
推荐指数
2
解决办法
8万
查看次数

__exit__的返回值

我明白那个

  • __enter____exit__用于实现上下文管理器.

  • 如果with语句中发生异常,则将异常的类型,值和回溯传递给该__exit__方法.

  • __exit__ 可以处理异常:

    1. 返回True:正常处理异常.
    2. 返回任何其他内容:该with语句引发异常

我遇到了以下__exit__方法.return语句是多余的吗?

def __exit__(self, type, value, traceback):
    self.close()
    return type == None
Run Code Online (Sandbox Code Playgroud)

因为在我看来,

  • 如果没有发生异常,type自然会None,所以__exit__返回true.什么都没有提出来.
  • 如果确实发生了异常,type则将其设置为实际的异常类型,因此__exit__返回false.异常是按原样引发的.

python with-statement contextmanager

14
推荐指数
1
解决办法
3782
查看次数

使用numpy/scikit函数保持pandas结构

我正在使用read_csv()熊猫的优秀功能,它给出了:

In [31]: data = pandas.read_csv("lala.csv", delimiter=",")

In [32]: data
Out[32]: 
<class 'pandas.core.frame.DataFrame'>
Int64Index: 12083 entries, 0 to 12082
Columns: 569 entries, REGIONC to SCALEKER
dtypes: float64(51), int64(518)
Run Code Online (Sandbox Code Playgroud)

但是当我从scikit-learn应用函数时,我松开了有关列的信息:

from sklearn import preprocessing
preprocessing.scale(data)
Run Code Online (Sandbox Code Playgroud)

给出numpy数组.

有没有办法在不丢失信息的情况下将scikit或numpy函数应用于DataFrames?

python numpy pandas scikit-learn

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

来自Wolfram和numpy的相同输入的标准偏差不同

我目前正在重新实现一些用Python编写的算法.一步是计算值列表的标准偏差.最初的实现使用DescriptiveStatistics.getStandardDeviation了Apache Math 1.1库.我使用numpy 1.5的标准偏差.问题是,它们为相同的输入提供(非常)不同的结果.我的样本是这样的:

[0.113967640255, 0.223095775796, 0.283134228235, 0.416793887842]
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

numpy           : 0.10932134388775223
Apache Math 1.1 : 0.12620366805397404
Wolfram Alpha   : 0.12620366805397404
Run Code Online (Sandbox Code Playgroud)

我与Wolfram Alpha核实了第三个意见.我不认为这种差异可以仅通过精确来解释.有谁知道为什么会这样,我能做些什么呢?

编辑:在Python中手动计算它会得到相同的结果:

>>> from math import sqrt
>>> v = [0.113967640255, 0.223095775796, 0.283134228235, 0.416793887842]
>>> mu = sum(v) / 4
>>> sqrt(sum([(x - mu)**2 for x in v]) / 4)
0.10932134388775223
Run Code Online (Sandbox Code Playgroud)

另外,关于不正确使用它:

>>> from numpy import std
>>> std([0.113967640255, 0.223095775796, 0.283134228235, 0.416793887842])
0.10932134388775223
Run Code Online (Sandbox Code Playgroud)

python java statistics numpy

12
推荐指数
1
解决办法
2426
查看次数

lock()和expired()之间的差异是什么?weak_ptr C++

最近我从C++ 11开始.我研究过weak_ptr.有两种获取原始指针的方法.

  1. lock() 功能

    shared_ptr<Foo> spFoo = wpPtr.lock();
    
    if(spFoo) {
        spFoo->DoSomething();
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. expired() 功能

    if(!wpPtr.expired())
    {
        shared_ptr<Foo> spFoo = wpPtr.lock();
        spFoo->DoSomething();
    }
    
    Run Code Online (Sandbox Code Playgroud)

哪种方式更好?这两种方式有什么不同?

c++ smart-pointers shared-ptr weak-ptr c++11

12
推荐指数
3
解决办法
6475
查看次数

Python numpy数组vs列表

我需要对一大堆数字进行一些计算.

array.array或numpy.array是否比典型的数组提供显着的性能提升?

我不需要对数组进行复杂的操作,我只需要能够访问和修改值,

例如

import numpy
x = numpy.array([0] * 1000000)
for i in range(1,len(x)):
  x[i] = x[i-1] + i
Run Code Online (Sandbox Code Playgroud)

所以我真的不需要连接,切片等.

此外,如果我尝试分配不适合C long的值,则看起来像数组会抛出错误:

import numpy
a = numpy.array([0])
a[0] += 1232234234234324353453453
print(a)
Run Code Online (Sandbox Code Playgroud)

在控制台我得到:

a[0] += 1232234234234324353453453
OverflowError: Python int too large to convert to C long
Run Code Online (Sandbox Code Playgroud)

是否有一个变量的数组让我放入无界的Python整数?或者这样做会在一开始就消除阵列的重点?

python arrays numpy list

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

cppcheck 如何抑制内联不匹配抑制?

我发现--suppress=unmatchedSuppression仅抑制 cppcheck 选项中不匹配的抑制类型,但不抑制不匹配的内联抑制。

这是预期的行为吗?

测试.c

  • 第4行是错误的。应该予以警告arrayIndexOutOfBounds

  • 7号线还可以。不应该被警告arrayIndexOutOfBounds

cppcheck-suppress对两条线都有内联。

  1 void f() {
  2     char arr[5];
  3     // cppcheck-suppress arrayIndexOutOfBounds
  4     arr[10] = 0;
  5
  6     // cppcheck-suppress arrayIndexOutOfBounds
  7     const char ok[] = "this line is ok";
  8 }
Run Code Online (Sandbox Code Playgroud)

情况1

Suppress cstyleCast,它在代码中不存在。

 cppcheck --inline-suppr --force --enable=all 
          --xml-version=2 --suppress=cstyleCast test.c 
          2>cppcheckresults.xml
Run Code Online (Sandbox Code Playgroud)

我收到警告(以及其他不相关的警告)

  1. unmatchedSuppression: arrayIndexOutOfBoundstest.c line 7(如预期)

  2. unmatchedSuppression: cstyleCast* line 0(如预期)

情况2

与情况 1 相同,但有附加--suppress=unmatchedSuppression选项

 cppcheck --inline-suppr …
Run Code Online (Sandbox Code Playgroud)

c++ static-code-analysis cppcheck

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