小编mis*_*haF的帖子

.gitignore文件属于哪里?

.gitignore文件是属于某个地方还是主源文件中的.git文件夹结构?

git gitignore

328
推荐指数
7
解决办法
21万
查看次数

如何在matplotlib中创建一个空白子图?

我在matplotlib中制作了一组子图(例如,3 x 2),但我的数据集少于6个.如何将剩余的子图留空?

安排如下:

+----+----+
| 0,0| 0,1|
+----+----+
| 1,0| 1,1|
+----+----+
| 2,0| 2,1|
+----+----+
Run Code Online (Sandbox Code Playgroud)

这可能会持续几页,但在最后一页上,例如,2,1框中的5个数据集将为空.但是,我已将该数字声明为:

cfig,ax = plt.subplots(3,2)
Run Code Online (Sandbox Code Playgroud)

因此,在子图2,1的空间中,存在一组带有刻度和标签的默认轴.如何以编程方式将该空间渲染为空白且没有轴?

python axes matplotlib subplot

70
推荐指数
3
解决办法
4万
查看次数

如何将python集转换为numpy数组?

我在python中使用set操作来执行两个numpy数组之间的对称差异.然而,结果是一个集合,我需要将它转换回一个numpy数组继续前进.有没有办法做到这一点?这是我试过的:

a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a) ^ set(b)
Run Code Online (Sandbox Code Playgroud)

结果是一组:

In [27]: c
Out[27]: set([1, 4, 6])
Run Code Online (Sandbox Code Playgroud)

如果我转换为numpy数组,它会将整个集合放在第一个数组元素中.

In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
Run Code Online (Sandbox Code Playgroud)

但是,我需要的是:

array([1,4,6],dtype=int)
Run Code Online (Sandbox Code Playgroud)

我可以循环遍历要逐个转换的元素,但我将拥有100,000个元素,并希望有一个内置函数来保存循环.谢谢!

python arrays numpy set

28
推荐指数
4
解决办法
3万
查看次数

如何只用一个元素检测numpy数组的长度?

我正在使用numpy.genfromtxt读取文件,该文件引入了字符串和数值的列.我需要做的一件事是检测输入的长度.如果每个数组中读取了多个值,则这一切都很好.

但是......如果结果数组中只有一个元素,则逻辑失败.我可以在这里重新创建一个例子:

import numpy as np
a = np.array(2.3)
Run Code Online (Sandbox Code Playgroud)

len(a)返回错误说:

TypeError: len() of unsized object
Run Code Online (Sandbox Code Playgroud)

但是,如果a有2个或更多元素,则len()的行为与预期的一样.

import numpy as np
a = np.array([2.3,3.6])
Run Code Online (Sandbox Code Playgroud)

len(a)返回2

我关注的是,如果我使用一些奇怪的异常处理,我无法区分为空和长度= 1.

编辑:@noskio建议设置a = np.array([2.3]).问题是,a的实际起源是使用numpy.genfromtxt.代码如下所示:

import numpy as np
indata = np.genfromtxt(some_filename, names=True,dtype=None)
a = indata['one_col_headername']
Run Code Online (Sandbox Code Playgroud)

因此,如果indata只是文件中的一行,则a是0-d数组.

python arrays numpy

17
推荐指数
2
解决办法
3万
查看次数

无法编辑由Matplotlib导出并在Illustrator中打开的图表中的文本

我从matplotlib导出图表并在Illustrator中编辑它们.我可以编辑线条很棒,但文本也以线条形式出现,因此我无法更改字体,编辑文本等.我​​已经导出为EPS,PDF和PS,但问题相同.

我在OSX Snow Leaopard上使用matplotlib版本1.0.1和python 2.7.1.

我感谢所提供的任何见解!我尝试使用这里建议的pdf2ps ,但所有这些都降低了图像的质量,而没有使文本呈现为真实文本.pdftops看起来更好,但仍然无法编辑文本结果.

python pdf matplotlib adobe-illustrator eps

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

我怎样才能在fortran中左对齐数值输出?

我在fortran中写了一些简单的输出,但我想要空白分隔符.但是,如果使用以下语句:

format(A20,ES18.8,A12,ES18.8)
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出:

p001t0000               3.49141273E+01obsgp_oden      1.00000000E+00
Run Code Online (Sandbox Code Playgroud)

我更喜欢这个:

p001t0000           3.49141273E+01   obsgp_oden  1.00000000E+00
Run Code Online (Sandbox Code Playgroud)

我尝试使用负值宽度(如在Python中),但没有骰子.那么,有没有办法让数字左对齐?

提前谢谢了!

fortran fortran90

9
推荐指数
2
解决办法
9741
查看次数

bundle_files = 1使用matplotlib使用py2exe失败

我正在尝试使用依赖于matplotlib和numpy的py2exe创建一个独立的应用程序.应用程序的代码是这样的:

import numpy as np
import pylab as plt

plt.figure()
a = np.random.random((16,16))
plt.imshow(a,interpolation='nearest')
plt.show()
Run Code Online (Sandbox Code Playgroud)

py2exe的设置代码(从http://www.py2exe.org/index.cgi/MatPlotLib修改)是这样的:

from distutils.core import setup
import py2exe
import sys

sys.argv.append('py2exe')

opts = {
    'py2exe': {"bundle_files" : 3,
               "includes" : [ "matplotlib.backends",  
                            "matplotlib.backends.backend_qt4agg",
                            "pylab", "numpy", 
                            "matplotlib.backends.backend_tkagg"],
                'excludes': ['_gtkagg', '_tkagg', '_agg2', 
                            '_cairo', '_cocoaagg',
                            '_fltkagg', '_gtk', '_gtkcairo', ],
                'dll_excludes': ['libgdk-win32-2.0-0.dll',
                            'libgobject-2.0-0.dll']
              }
       }

setup(console=[{"script" : "matplotlib_test.py"}], 
                            zipfile=None,options=opts)
Run Code Online (Sandbox Code Playgroud)

现在,当bundle_files设置= 3或不存在时,一切正常,但生成的exe无法分发到未配置相同版本的Python等的机器.如果我设置bundle_files = 1,它会创建一个合适的必须包含所有内容的大型exe文件,但无法在本地或分布式运行.在这种情况下,我正在使用Python 2.6.6在Windows 7机器上创建所有内容,并尝试在本地运行并在安装了Python 2.6.4的XP机器上运行.

我在XP机器上运行时遇到的错误看起来很奇怪,因为没有捆绑,我在Win 7上没有错误.通过捆绑,Win 7不会报告回溯信息,所以我无法确定错误是否相同.在任何情况下,这是XP上的错误消息:

Traceback (most recent call last):
  File "matplotlib_test.py", line 2, …
Run Code Online (Sandbox Code Playgroud)

python py2exe matplotlib

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

从二维数组中提取指定行的最有效方法是什么?

我有一个2-D numpy阵列,有100,000多行.我需要返回这些行的子集(我需要执行该操作数千次,因此效率很重要).

一个模拟示例是这样的:

import numpy as np
a = np.array([[1,5.5],
             [2,4.5],
             [3,9.0],
             [4,8.01]])
b = np.array([2,4])
Run Code Online (Sandbox Code Playgroud)

所以...我希望从第一列中标识的行返回数组b:

c=[[2,4.5],
   [4,8.01]]
Run Code Online (Sandbox Code Playgroud)

当然,区别在于a和b中还有更多的行,所以我想避免循环.另外,我玩制作字典和使用np.nonzero,但仍然有点难过.

提前感谢任何想法!

编辑:请注意,在这种情况下,b是标识符而不是索引.这是一个修改过的例子:

import numpy as np
a = np.array([[102,5.5],
             [204,4.5],
             [343,9.0],
             [40,8.01]])
b = np.array([102,343])
Run Code Online (Sandbox Code Playgroud)

我想回来:

c = [[102,5.5],
     [343,9.0]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy mask

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

NumPy loadtxt 中的转换器行为无法理解

我正在尝试使用 numpy.loadtxt 和转换器参数从文本文件中读取数据。我有整数列和字符串的混合。代码是:

a, b, c, d, e = np.loadtxt(infile, delimiter = ',', usecols=(0, 2, 5, 8, 9), skiprows = 1,
                           unpack = True, converters = dict(zip((0, 2, 5, 8, 9), (int, float, float, int, int))))
Run Code Online (Sandbox Code Playgroud)

数据被正确读取并正确解包,但所有变量(a、b、c、d 和 e)最终都为浮点数。我在转换器语法中犯了错误吗?

编辑尝试答案

我尝试按照@joris的建议使用 dtype = (int,float,float,int,int) :

a,b,c,d,e = np.loadtxt(infile,delimiter = ',', usecols=(0,2,5,8,9), skiprows = 1, unpack = True, dtype = (int,float,float,int,int))
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

     41                                            skiprows = 1,
     42                                            unpack = True,
---> 43                                            dtype = (int,float,float,int,int))
     44
     45

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/npyio.pyc in loadtxt(fname, dtype, …
Run Code Online (Sandbox Code Playgroud)

python numpy

5
推荐指数
1
解决办法
2万
查看次数

有没有办法在matplotlib中制作多个水平箱图?

我正在尝试制作一个matplotlib图,它将有多个水平箱图堆叠在一起.该文档显示了如何制作单个水平箱图以及如何在此部分中制作多个垂直方向图.

我尝试使用以下代码中的子图:

import numpy as np
import pylab as plt

totfigs = 5

plt.figure()
plt.hold = True

for i in np.arange(totfigs):    
    x = np.random.random(50)
    plt.subplot('{0}{1}{2}'.format(totfigs,1,i+1))
    plt.boxplot(x,vert=0)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我的输出结果只是一个水平箱图.

有人建议吗?

编辑:感谢@joaquin,我修复了plt.subplot调用行.现在subplot版本可以工作,但仍然希望箱图全部在一个图中...

python matplotlib

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

混合定义如何在枚举中起作用?

我正在尝试使用Python和ctypes模块的C程序(通过动态库).头文件中定义的几个常量对我来说很重要,但我不确定如何enum使用它来设置它们的值.

显而易见的,我想我明白了: enum{THING1, THING2, THING3};

THING1=0, THING2=1, THING3=3

但是,这个怎么样? enum{THING1=-1, THING2, THING3};

结果是: THING1=-1, THING2=1, THING3=2

这个如何? enum{THING1=1, THING2, THING3, THING4=-1}

我没有一个简单的方法来测试这个,所以希望有人可以解释这种方式的enum工作方式.我查看的C书似乎涵盖了第一种情况或明确定义每个值的情况,但不是这种混合情况.

提前谢谢了!

c python ctypes

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

rpy2的问题,rpart正确地将数据从python传递到r

我试图使用Python 2.6.5和R 10.0在RPY2中运行rpart.

我在python中创建一个数据框并传递它但我得到一个错误说明:

Error in function (x)  : binary operation on non-conformable arrays
Traceback (most recent call last):
  File "partitioningSANDBOX.py", line 86, in <module>
    model=r.rpart(**rpart_params)
  File "build/bdist.macosx-10.3-fat/egg/rpy2/robjects/functions.py", line 83, in __call__
  File "build/bdist.macosx-10.3-fat/egg/rpy2/robjects/functions.py", line 35, in __call__
rpy2.rinterface.RRuntimeError: Error in function (x)  : binary operation on non-conformable arrays
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我确定我做错了什么来抛出这个错误?

我的代码的相关部分是这样的:

import numpy as np
import rpy2
import rpy2.robjects as rob
import rpy2.robjects.numpy2ri


#Fire up the interface to R
r = rob.r
r.library("rpart")

datadict = dict(zip(['responsev','predictorv'],[cLogEC,csplitData]))
Rdata = r['data.frame'](**datadict)
Rformula …
Run Code Online (Sandbox Code Playgroud)

python r rpy2

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

标签 统计

python ×10

matplotlib ×4

numpy ×4

arrays ×3

adobe-illustrator ×1

axes ×1

c ×1

ctypes ×1

eps ×1

fortran ×1

fortran90 ×1

git ×1

gitignore ×1

mask ×1

pdf ×1

py2exe ×1

r ×1

rpy2 ×1

set ×1

subplot ×1