小编Fin*_*sen的帖子

Python和Numpy的nan和set

我遇到了Python的Numpy,set和NaN(非数字)的不可预知的行为:

>>> set([np.float64('nan'), np.float64('nan')])
set([nan, nan])
>>> set([np.float32('nan'), np.float32('nan')])
set([nan, nan])
>>> set([np.float('nan'), np.float('nan')])
set([nan, nan])
>>> set([np.nan, np.nan])
set([nan])
>>> set([float('nan'), float('nan')])
set([nan, nan])
Run Code Online (Sandbox Code Playgroud)

这里np.nan产生一个单独的元素集,而Numpy的nans产生一组中的多个nans.浮动('nan')也是如此!请注意:

>>> type(float('nan')) == type(np.nan)
True
Run Code Online (Sandbox Code Playgroud)

我想知道这种差异是如何产生的,以及不同行为背后的理性是什么.

python numpy set nan

6
推荐指数
1
解决办法
1600
查看次数

使用ipython2 notebook获取"SyntaxError:invalid syntax"

随着最近的升级,我现在遇到一个严重的问题,SyntaxError: invalid syntax当启动笔记本的python2.7实例时$ ipython2 notebook.

该错误似乎源于tornado使用ayncio和在该库中有python3.4语法.

我可以开始$ ipython3 notebook,但我正在使用的应用程序正在使用mayavi我认为仍然只用于python2.

令人讨厌的错误消息是:

$ ipython2 notebook
Traceback (most recent call last):
  File "/usr/local/bin/ipython2", line 11, in <module>
    sys.exit(start_ipython())
  File "/usr/local/lib/python2.7/dist-packages/IPython/__init__.py", line 118, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 591, in launch_instance
    app.initialize(argv)
  File "<string>", line 2, in initialize
  File "/usr/local/lib/python2.7/dist-packages/traitlets/config/application.py", line 75, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 305, in initialize
    super(TerminalIPythonApp, self).initialize(argv)
  File "<string>", line …
Run Code Online (Sandbox Code Playgroud)

tornado python-2.7 ipython-notebook python-asyncio

6
推荐指数
1
解决办法
3755
查看次数

为什么Pandas将我的numpy float32强制转换为float64?

为什么Pandas在这段代码中将我的numpy float32强制转换为float64:

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame([[1, 2, 'a'], [3, 4, 'b']], dtype=np.float32)
>>> A = df.ix[:, 0:1].values
>>> df.ix[:, 0:1] = A
>>> df[0].dtype
dtype('float64')
Run Code Online (Sandbox Code Playgroud)

这个行为对我来说似乎很奇怪,不知道它是不是一个bug.我在Pandas版本0.17.1(更新的PyPI版本)上,我注意到最近有一些强制错误,请参阅https://github.com/pydata/pandas/issues/11847.我没有尝试使用更新的GitHub主代码.

这是一个错误还是我误解了熊猫的某些"功能"?如果它是一个功能,那么我该如何解决它?

(胁迫问题涉及我最近询问的有关Pandas任务性能的问题:使用float32和float64慢速分配Pandas DataFrame)

python numpy coercion pandas

6
推荐指数
1
解决办法
1678
查看次数

当我没有文件标识符时如何在 python 中关闭文件

我发现自己无法在 Python 中打开新文件。当我检查时,ls -l /proc/PID/fd我看到为 Python 进程打开了大量文件。我正在使用的模块显然是打开了很多文件而不是关闭它们。

我原以为我可以通过删除与打开文件的模块关联的对象来关闭文件,但什么也没发生。

我还期待在垃圾收集中的某处看到文件对象,但我没有看到任何类似于打开文件的内容:

for obj in gc.get_objects():
    if hasattr(obj, 'read'):
        print(obj)
Run Code Online (Sandbox Code Playgroud)

当我退出 Python 时,这些文件消失了。

python file

4
推荐指数
1
解决办法
1141
查看次数

计数时如何获取 SPARQL 查询的默认返回值

我有一个查询,我用年份分组来计算。在某些年份中,没有可计算的项目,因此没有结果。我想让 SPARQL 在这些年中返回零计数。

我正在使用 Wikidata 查询服务https://query.wikidata.org,我目前的解决方案是制作一系列值并与实际查询进行联合。对我来说看起来有点笨拙。有没有更好的办法?

#defaultView:BarChart
select ?year ?number_of_pages ?work_label where {
  {
    select ?year (sample(?pages) as ?number_of_pages) ?work_label       
    where {
      {
        select * where {
          values (?year ?pages ?work_label) {
            ("2000" "0"^^xsd:integer "_") 
            ("2001" "0"^^xsd:integer "_") 
            ("2002" "0"^^xsd:integer "_") 
            ("2003" "0"^^xsd:integer "_") 
            ("2004" "0"^^xsd:integer "_") 
            ("2005" "0"^^xsd:integer "_") 
            ("2006" "0"^^xsd:integer "_") 
            ("2007" "0"^^xsd:integer "_") 
            ("2008" "0"^^xsd:integer "_") 
            ("2009" "0"^^xsd:integer "_") 
            ("2010" "0"^^xsd:integer "_") 
            ("2011" "0"^^xsd:integer "_")
            ("2012" "0"^^xsd:integer "_")
            ("2013" "0"^^xsd:integer "_")
            ("2014" "0"^^xsd:integer "_")
            ("2015" …
Run Code Online (Sandbox Code Playgroud)

sparql wikidata

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

反转SPARQL中的字符串

是否可以在SPARQL中反转字符串,所以“ abc”变为“ cba”。可替代地,可以基于相反的字符串排序。

我对在Wikidata Query Service上可以使用的解决方案特别感兴趣。

string sparql wikidata

0
推荐指数
1
解决办法
349
查看次数