Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:进行大规模检查的有效方法_Python_Numpy - Fatal编程技术网

python:进行大规模检查的有效方法

python:进行大规模检查的有效方法,python,numpy,Python,Numpy,我有一个数组测试,有很多行,每行有3个数字。我需要对每一行都为真,其中所有3个数字都为正,否则为假。目前我使用 check = np.all((test[:] > 0), axis=1) 测试是这样的 [[ 0.76717743 -0.14548865 0.10444938] [-0.349094 0.86043484 -0.03470421] [ 0.61281474 -0.5589774 -0.46888367] [ 0.106147 -0.15964074 -0

我有一个数组测试,有很多行,每行有3个数字。我需要对每一行都为真,其中所有3个数字都为正,否则为假。目前我使用

check = np.all((test[:] > 0), axis=1)
测试是这样的

[[ 0.76717743 -0.14548865  0.10444938]
 [-0.349094    0.86043484 -0.03470421]
 [ 0.61281474 -0.5589774  -0.46888367]
 [ 0.106147   -0.15964074 -0.72297835]
 [-0.47496423  0.53561226 -0.56997515]
 [ 0.11404722 -0.19772103 -0.70308939]
 [ 0.05176676  0.68243443  0.10374478]
 [ 0.41054414 -0.37773413 -0.65230608]
 [-0.51045939  0.81814742 -0.34113701]
 [-0.30434684  0.229953   -0.6717718 ]
 [ 0.12726272 -0.2157578  -0.6968093 ]
 [-0.56914774  0.80530545 -0.27157462]
 [-0.10736854  0.76317726  0.08648359]
 [-0.30585015  0.85400552 -0.02213381]
 [ 0.81378956 -0.20719654  0.04194195]
 [-0.57842424  0.70255033 -0.39798076]
 [ 0.56074816 -0.54319019 -0.49967448]
 [ 0.72422859 -0.58427248 -0.37145212]
 [ 0.86456736 -0.45311164 -0.08229539]
 [ 0.86428591 -0.43964496 -0.0693436 ]
 [ 0.47937801 -0.51390972 -0.53733707]
 [ 0.85551894 -0.39396805 -0.01711862]
 [ 0.4737934  -0.54178454 -0.50940207]
 [ 0.15694062 -0.34735834 -0.61456285]]
我想加快速度。我能做什么?

使用numexpr:

使用numexpr:

这里有一个选择

(test > 0).all(1)
考虑测试

时间测试

这里有一个选择

(test > 0).all(1)
考虑测试

时间测试


为什么要用test[:]复制test?@ForceBru:虽然它毫无意义,但在NumPy中它不是副本。NumPy数组切片创建了一个视图。为什么要用test[:]复制test?@ForceBru:虽然它毫无意义,但在NumPy中它不是副本。NumPy数组切片创建一个视图。谢谢,但这真的能加快它吗?我正在研究包含100000个元素的阵列。@John是的,根据我在结束时做的一些计时测试,它有很大的优势。您测试过了吗?numexpr应该能够使这一点变得更快,因为它不需要编写依赖于体系结构的SSE代码。就这么好,我做到了。一般来说没有什么不同-你能分享你的计时吗?我发布了100万行的计时。这是我的票。谢谢,但这真的能加快速度吗?我正在研究包含100000个元素的阵列。@John是的,根据我在结束时做的一些计时测试,它有很大的优势。您测试过了吗?numexpr应该能够使这一点变得更快,因为它不需要编写依赖于体系结构的SSE代码。就这么好,我做到了。一般来说没有什么不同-你能分享你的计时吗?我发布了100万行的计时。这是我的投票。
test = np.random.randn(1000000, 3)