我明白那个,
@Before
并分别@BeforeClass
在每个测试或整个测试类之前运行@Rule
并分别@ClassRule
包装每个测试或整个测试类.假设我需要在每个测试方法之前初始化一些数据,
我如何决定使用@Before
和@Rule
?在什么条件下优先于另一种?同样的问题也无二@BeforeClass
对比@ClassRule
.
对于一个学校项目,我试图表明经济遵循相对正弦的增长模式.除了它的经济学,这是不确定的,我正在构建一个python模拟,以表明,即使我们让某种程度的随机性保持不变,我们仍然可以产生一些相对正弦的东西.我对我正在制作的数据感到满意,但现在我想找到一些方法来获得与数据非常匹配的正弦图.我知道你可以做多项式拟合,但你能做正确的吗?
感谢您的帮助.如果您想要查看代码的任何部分,请告诉我.
我是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)?
我正在尝试将表示黑白图像的2D Numpy阵列转换为3通道OpenCV阵列(即RGB图像).
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)
我究竟做错了什么?
我明白那个
__enter__
并__exit__
用于实现上下文管理器.
如果with
语句中发生异常,则将异常的类型,值和回溯传递给该__exit__
方法.
__exit__
可以处理异常:
True
:正常处理异常.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.异常是按原样引发的.我正在使用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编写的算法.一步是计算值列表的标准偏差.最初的实现使用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) 最近我从C++ 11开始.我研究过weak_ptr
.有两种获取原始指针的方法.
lock()
功能
shared_ptr<Foo> spFoo = wpPtr.lock();
if(spFoo) {
spFoo->DoSomething();
}
Run Code Online (Sandbox Code Playgroud)expired()
功能
if(!wpPtr.expired())
{
shared_ptr<Foo> spFoo = wpPtr.lock();
spFoo->DoSomething();
}
Run Code Online (Sandbox Code Playgroud)哪种方式更好?这两种方式有什么不同?
我需要对一大堆数字进行一些计算.
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整数?或者这样做会在一开始就消除阵列的重点?
我发现--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)
我收到警告(以及其他不相关的警告)
unmatchedSuppression: arrayIndexOutOfBounds
在test.c
line 7
(如预期)
unmatchedSuppression: cstyleCast
在*
line 0
(如预期)
情况2
与情况 1 相同,但有附加--suppress=unmatchedSuppression
选项
cppcheck --inline-suppr …
Run Code Online (Sandbox Code Playgroud) python ×7
numpy ×6
c++ ×2
java ×2
arrays ×1
c++11 ×1
cppcheck ×1
economics ×1
junit ×1
junit4 ×1
list ×1
opencv ×1
pandas ×1
scikit-learn ×1
shared-ptr ×1
statistics ×1
trigonometry ×1
weak-ptr ×1