假设您有以下numpy数组,
>>> x = numpy.array([0,1,2,3,4,5,6,7,8,9,10])
Run Code Online (Sandbox Code Playgroud)
并且你想提取一个新的numpy数组,只包含前三(3)和最后四(4)个元素,即
>>> y = x[something]
>>> print y
[0 1 2 7 8 9 10]
Run Code Online (Sandbox Code Playgroud)
这可能吗?我知道要提取前面提到的前三个数字x[:3]
并提取你做的最后四个数字x[-4:]
,但有一种简单的方法可以在一个简单的切片中提取所有这些数字吗?我知道这可以通过例如追加两个电话来完成,
>>> y = numpy.append(x[:3],x[-4:])
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否有一些简单的小技巧以更直接,更pythonic的方式来做,而不必x
再次参考(即,我首先想到也许x[-4:3]
可以工作,但我立刻意识到它没有意义).
我正在使用rpy2,我有这个问题困扰我:我知道如何将Python数组或列表转换为FloatVector R(感谢rpy2)可以在Python中处理,但我不知道相反的是否可以完成,比方说,我有一个Flo可以处理并将其转换回Python数组或列表的FloatVector或Matrix ......可以这样做吗?
提前致谢!
我在远程计算机上有一个没有root权限的帐户,我需要安装本地版本的Python(远程计算机的Python版本与我的某些代码不兼容)、Numpy和Scipy。从昨天开始我一直在尝试在本地安装 numpy,但没有成功。
我在 /home/myusername/.local/ 中成功安装了本地版本的 Python (2.7.3),因此我通过执行 来访问此版本的 Python /home/myusername/.local/bin/python
。我尝试了两种安装 Numpy 的方法:
我从官方网页下载了最新稳定版本的 Numpy,将其解压,进入解压后的文件夹并执行以下操作:/home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
。但是,我收到以下错误,随后出现一系列其他错误(源自此错误):
gcc -pthread -shared build/temp.linux-x86_64-2.7/numpy/core/blasdot/_dotblas.o
-L/usr/local/lib -Lbuild/temp.linux-x86_64-2.7 -lptf77blas -lptcblas -latlas
-o build/lib.linux-x86_64-2.7/numpy/core/_dotblas.so
/usr/bin/ld: /usr/local/lib/libptcblas.a(cblas_dptgemm.o): relocation
R_X86_64_32 against `a local symbol' can not be used when making a shared
object; recompile with -fPIC
Run Code Online (Sandbox Code Playgroud)
不太清楚这意味着什么(除了错误显然与 LAPACK 库有关),我只是执行了与上面相同的命令,但现在输入 LDFLAGS='-fPIC',如错误所示,即,我做了
LDFLAGS="-fPIC" /home/myusername/.local/bin/python setup.py install --prefix=/home/myusername/.local
。但是,我得到了同样的错误(除了在上面的 gcc 命令之后添加了前缀 -fPIC 之外)。
我尝试使用 pip 安装它,即/home/myusername/.local/bin/pip install numpy
在我的本地路径中成功安装 pip 后执行 /)。但是,我得到了完全相同的错误。
我在网上搜索了一下,但似乎没有一个错误与我的类似。我的第一个猜测是,这与某些需要 root 权限才能执行的代码有关,或者可能与 LAPACK 库的版本有问题有关。 …