当我实现一些机器学习算法时出现问题numpy.我想要一些新的类ludmo,它的工作方式相同 numpy.ndarray,但有一些属性.例如,使用新属性ludmo.foo.我已经尝试过以下几种方法,但没有一种方法令人满意.
首先,我创建了一个包装类numpy.ndarray,如
import numpy as np
class ludmo(object):
def __init__(self)
self.foo = None
self.data = np.array([])
Run Code Online (Sandbox Code Playgroud)
但是当我使用一些函数(scikit-learn我无法修改)来操作np.ndarray实例列表时,我必须先提取data每个ludmo对象的所有字段并将它们收集到一个列表中.之后,列表被排序,我丢失了data原始ludmo对象之间的对应关系.
然后我试着创建ludmo一个子类numpy.ndarray,as
import numpy as np
class ludmo(np.ndarray):
def __init__(self, shape, dtype=float, buffer=None, offset=0, strides=None, order=None)
super().__init__(shape, dtype, buffer, offset, strides, order)
self.foo = None
Run Code Online (Sandbox Code Playgroud)
但是另一个问题出现了:创建numpy.ndarray对象的最常见方法是numpy.array(some_list)返回一个numpy.ndarray对象,我必须将它转换为一个ludmo对象.但到目前为止,我发现没有好办法做到这一点; …
我从https://github.com/technomancy/emacs-starter-kit中取出了入门套件,它已经安装在~/.emacs.d/elpa.按照说明starter-kit.el,我将用户特定的自定义放入~/.emacs.d/$USER.el:
(require 'color-theme-solarized)
(color-theme-solarized-dark)
(require 'auto-complete)
(global-auto-complete-mode)
Run Code Online (Sandbox Code Playgroud)
但是,当我开始使用emacs时,它说
File error: Cannot open load file, color-theme-solarized
Run Code Online (Sandbox Code Playgroud)
我检查了load-path变量,发现路径color-theme-solarized不在其中.所以我在"要求"它之前添加它:
(add-to-list 'load-path "~/.emacs.d/elpa/color-theme-solarized-20120301)
Run Code Online (Sandbox Code Playgroud)
然而,错误仍然存在.然后我提到了elpa的wiki,它说所有的包都在init.el加载后初始化.然后我读starter-kit.el,发现了$USER.el被添加到after-init-hook,这意味着由于不应该发生的错误$USER.el是在初始化的端部加载.我拼命地将我的所有定制移到最后init.el,令我惊讶的是,它工作正常.它似乎init.el是最后加载而不是最初加载.我怎么能让我的自定义工作除了写在init.el?我不想做init.el太长时间.
PS:我已经把(require 'package)和(package-initialize)之初init.el
,并没有发挥作用.
假设我有一个如下结构的 python 包:
foo/
__init__.py
setup.py
bar/
__init__.py
bar.pyx
Run Code Online (Sandbox Code Playgroud)
的内容setup.py是
from distutils.core import setup
from Cython.Build import cythonize
import numpy as np
setup(
ext_modules=cythonize("bar/bar.pyx"),
include_dirs=[np.get_include()]
)
Run Code Online (Sandbox Code Playgroud)
然后我就跑
python setup.py build_ext --inplace
Run Code Online (Sandbox Code Playgroud)
因为我需要将编译后的文件bar.so准确放置在bar/. 但是前面的命令foo/bar/在 下创建了一个新目录bar,并放在bar.so那里,比如说,
foo/
__init__.py
setup.py
bar/
__init__.py
bar.pyx
foo/
bar/
bar.so
Run Code Online (Sandbox Code Playgroud)
而我需要的是
foo/
__init__.py
setup.py
bar/
__init__.py
bar.pyx
bar.so
Run Code Online (Sandbox Code Playgroud)
这些烦人的事情发生在我转身foo成为bar一个包裹之后。如果我删除foo/__init__.py然后会出现在,仍然不会bar/__init__.py。我已阅读手册,但没有找到解决此问题的选项。bar.sofoo/foo/bar/
那么如果我要求bar.so出现在正确的位置,同时保留这两个__init__.py文件该怎么办呢?
python ×2
arrays ×1
class ×1
cython ×1
emacs24 ×1
inheritance ×1
numpy ×1
python-2.7 ×1
setup.py ×1