使用Popen时,python numpy log2返回-inf

时间:2017-05-13 17:25:49

标签: python numpy subprocess

我正试图运行这一行:

print(np.log2( (ngram_list.count(('i',)) + 1 )/( 100000 + len(set(n1gram_list)) )))

当我从终端运行我的脚本时,我得到-1.54814270552。 但是当我通过subprocess.Popen运行相同的脚本时,我得到-inf。 基本上每当log2的输出为正时,我在两种方法中得到正确的输出,但对于负值,我只有在使用Popen时才得到-inf。

1 个答案:

答案 0 :(得分:0)

在使用Popen时,您似乎正在使用Python 2,而from __future__ import division使用整数除法。

使用100000 + len(set(n1gram_list)),将<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> </beans> 转换为float,或者调用Python 3。