小编eva*_*n54的帖子

pandas/python中的boxplot如何工作?

我找到了这个链接,我试图了解boxplot是如何工作的.

http://pandas.pydata.org/pandas-docs/dev/visualization.html#box-plotting

df = DataFrame(np.random.rand(10,5))

plt.figure();
bp = df.boxplot()
Run Code Online (Sandbox Code Playgroud)

我希望boxplot每个盒子需要4个值,但是它似乎为每个10个点构建一个盒子,我想知道背景中发生了什么.

我指的四点是晶须高,低,盒高,低

谢谢

python boxplot pandas

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

在标量上使用len的最pythonic方法是什么?

我读了这个问题

python:如何识别变量是数组还是标量

但是当使用下面的代码时,我会得到一个假的np.array,如下所示.

import collections

isinstance(np.arange(10), collections.Sequence)
# returns false
Run Code Online (Sandbox Code Playgroud)

我觉得有点烦人,我不能做len(1),只是得到1.

我能想到的唯一工作是try except如下声明:

a = 1
try:
    print len(a)
except TypeError:
    print 1
Run Code Online (Sandbox Code Playgroud)

是否有更多的Pythonic方法来做到这一点?

python iterable typechecking

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

我怎么知道mpmath是使用gmpy还是gmpy2?

我知道

import mpmath as mp
print mp.libmp.BACKEND
Run Code Online (Sandbox Code Playgroud)

但如果我没弄错的话,我不会说我是用gmpy还是gmpy2.

另外,我每次你使用更新版本的东西时都不会得到它旁边的版本号,但是因为我可以import gmpy而且gmpy2分别让我有点担心我可能会使用旧版本的gmpy.

谢谢

更新:

我也试过以下让我困惑/担心的事情.

import mpmath as mp
import gmpy as gm
import gmpy2 as gm2
print mp.mpf('1') == gm.mpf('1')
# Result is FALSE
print mp.mpf('1') == gm2.mpfr('1')
# Result is FALSE
print gm.mpf('1') == gm2.mpfr('1')
# Result is FALSE
print mp.mpf('1') == 1
# Result is TRUE
print gm.mpf('1') == 1
# Result is TRUE
print gm2.mpfr('1') == 1
# Result is TRUE
Run Code Online (Sandbox Code Playgroud)

有没有搞错?

python mpmath gmpy

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

传递需要列表或元组的参数时要传递什么?

我应该使用以下哪个以及为什么?

import numpy as np
a = np.zeros([2, 3])
b = np.zeros((2, 3))
Run Code Online (Sandbox Code Playgroud)

在很多情况下你可以以任何一种方式传递参数,我只是想知道一个是否更像Pythonic,或者是否有其他原因应该优先于另一个.

我看了一下这个问题,人们试图解释元组和列表之间的区别.这不是我感兴趣的,除非有理由我应该关心,当然我忽略了!

更新:

虽然使用numpy作为示例,但这通常与python有关.非笨拙的例子如下:

a = max([1, 2, 3, 5, 4])
b = max((1, 2, 3, 5, 4))
Run Code Online (Sandbox Code Playgroud)

我不是在编辑上面的内容,因为有些答案在他们的解释中使用了numpy

python coding-style tuples list data-structures

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

为什么在从阵列转换为图像时会发生位移?

我正在尝试从numpy数组创建一个QPixmap.numpy数组图像将是2D(即没有颜色信息只是灰度).

我正在尝试根据我的需要调整这个答案,但我不太明白这一行:

b = (255 << 24 | a[:,:,0] << 16 | a[:,:,1] << 8 | a[:,:,2]).flatten() # pack RGB values
Run Code Online (Sandbox Code Playgroud)

有一些比特or转移和一些按位,但我不太明白.

所以我愚蠢的例子如下:

x, y = np.meshgrid(np.arange(1920), np.arange(1080), indexing='ij'); z = np.sin(0.03*x)*np.cos(0.005*y)
imgPNFN = z
if imgPNFN.ndim == 2:
    imgPNFN = imgPNFN[:,:,np.newaxis].repeat(3, 2)
imMin = np.min(imgPNFN)
imDelta = np.max(imgPNFN) - np.min(imgPNFN)
im1 = ((imgPNFN-imMin)/imDelta*255).astype(np.uint32)+1 #<-- had to add 1 for some reason otherwise got weird results...
im2 = 255 << 24 | im1[:,:,0] << 16 | …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy qpixmap qimage

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

如何在 ipywidgets 中安装 datepicker 小部件?

好像我没有DatePicker这个很奇怪的小部件。我尝试安装/卸载ipywidgets但没有运气。

知道如何安装它吗?

import ipywidgwts as ipyw
ipyw.DatePicker
# AttributeError: module 'ipywidgets' has no attribute 'DatePicker'
ipyw.__version__
# 5.2.2
Run Code Online (Sandbox Code Playgroud)

运行python3.5

python-3.x jupyter-notebook ipywidgets

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

如何在没有最大化的情况下制作占据全屏的窗口?

我正在使用Qt在python中编写

我想创建应用程序窗口(带有装饰)以占据整个屏幕大小.目前这是我的代码:

avGeom = QtGui.QDesktopWidget().availableGeometry()
self.setGeometry(avGeom)
Run Code Online (Sandbox Code Playgroud)

问题是它忽略了窗口装饰,所以框架更大...我用Google搜索,什么不是,发现这个:

http://harmattan-dev.nokia.com/docs/library/html/qt4/application-windows.html#window-geometry

这似乎表明我需要将frameGeometry设置为,avGeom但是我还没有找到办法做到这一点.此外,在上面链接的评论中,它说我所追求的可能是不可能的,因为程序无法在运行之前设置frameGeometry ...如果是这种情况我只是想确认我的问题是不可解决的.

编辑:

所以我玩了一些代码,这给了我想要的东西......但是数字24基本上是通过试验和错误,直到窗口标题可见....我想要一些更好的方法来做到这一点...窗口管理员独立..

avGeom = QtGui.QDesktopWidget().availableGeometry()
avGeom.setTop(24)
self.setGeometry(avGeom)
Run Code Online (Sandbox Code Playgroud)

现在我可以做我想做的事,但纯粹是出于反复试验

运行Ubuntu,使用Spyder作为IDE

谢谢

python qt pyqt pyside

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

为什么函数执行后变量仍然可用?

我试图在这里更好地理解范围.

def f1():
    a = 1
    def g1(X):
        return X+a
    return g1

def f2():
    a = 1
    def g2(X):
        return X+1
    return g2

g1 = f1()
print g1(4)
g2 = f2()
print g2(4)
# both give 5 as you'd expect
Run Code Online (Sandbox Code Playgroud)

我的问题是没有a被破坏?它在哪个范围内?我的一般理解是,在f2函数返回时,a 的第二种情况绝对不可用.这种方式,例如,如果你有一个巨大的数组或内存方面的变量,一旦函数返回它们就不复存在了.

这里发生了什么?

编辑:

这里有空吗?

def f1():
    a = 1
    b = 1
    def g1(X):
        return X+a
    return g1
Run Code Online (Sandbox Code Playgroud)

python

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

应该命名Meteor发布功能吗?

我正在努力更好地理解发布/订阅模型的工作原理.

具体来说,我指的是教程中的一步.

if (Meteor.isServer) {
  Meteor.publish('tasks', function tasksPublication() {
    return Tasks.find();
  });
}
Run Code Online (Sandbox Code Playgroud)

tasksPublication教程之后的任何地方都不会使用该名称.

查看此处的文档,似乎不需要该名称.
命名出版函数会有什么不同吗?

javascript publish-subscribe meteor meteor-publications

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

为什么我得到NameError:名称'array'未定义

我正在使用spyder并编写了以下类:

class Ray:

    def __init__(self, r, p, k):

        if r.shape == (3,):
            self.r = r
        if p.shape == (3,):
            self.p = p
        if k.shape == (3,):
            self.k = k

r = array(range(3))
p = array(range(3))
k = array(range(3))
Run Code Online (Sandbox Code Playgroud)

它存储在/ home/user/workspace/spyder/project中,控制台工作目录就是那个.在控制台中,我可以运行一个数组(范围(3)),它返回一个值为0,1,2的数组.但是在做的时候

import ray
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "ray.py", line 8, in <module>
    class Ray:
  File "ray.py", line 20, in ray
    r = array(range(3));
NameError: name 'array' is not defined
Run Code Online (Sandbox Code Playgroud)

编辑:

默认情况下spyder有以下行为,不太明白为什么array()默认工作我认为它只是numpy的一部分.

import …
Run Code Online (Sandbox Code Playgroud)

python nameerror spyder

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

如何让一个模块内的函数可用于类?

所以我有以下情况:

我有一个具有多个函数定义的模块.我想创建一个具有这些功能的类.

我只是想问哪条路最好?选项1

import ModuleWithFunctions

class bla(object):

    ModuleWithFunctions = ModuleWithFunctions
Run Code Online (Sandbox Code Playgroud)

选项2

class bla(object):

    import ModuleWithFunctions
Run Code Online (Sandbox Code Playgroud)

我知道选项2是针对PEP 8的,所以我假设人们会说选项1,但是,如果我希望所有内容都可用,那该怎么办?

bla.(function) 
Run Code Online (Sandbox Code Playgroud)

代替:

bla.ModuleWithFunctions.(function)
Run Code Online (Sandbox Code Playgroud)

我怎么能用option1做到这一点?

python class pep8

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