小编ene*_*ene的帖子

如何从其他计算机接受ipython的连接?

我在Ubuntu 12.04上运行ipython 0.12.1.您可以使用笔记本界面在浏览器中运行它:

ipython notebook --pylab
Run Code Online (Sandbox Code Playgroud)

配置文件可以在中找到~/.config/ipython/profile_default/.似乎每个内核的连接参数都放在~/.config/ipython/profile_default/security/kernel-4e424cf4-ba44-441a-824c-c6bce727e585.json.以下是此文件的内容(在启动新内核时会创建新文件):

{
  "stdin_port": 54204, 
  "ip": "127.0.0.1", 
  "hb_port": 58090, 
  "key": "2a105dd9-26c5-40c6-901f-a72254d59876", 
  "shell_port": 52155, 
  "iopub_port": 42228
}
Run Code Online (Sandbox Code Playgroud)

它是相当不言自明的,但我如何设置一个具有永久配置的服务器,所以我可以使用局域网中其他计算机的笔记本界面?

configuration ipython

53
推荐指数
2
解决办法
4万
查看次数

从numpy datetime64获取年,月或日

我有一个datetime64类型的数组:

dates = np.datetime64(['2010-10-17', '2011-05-13', "2012-01-15"])
Run Code Online (Sandbox Code Playgroud)

有没有比循环遍历每个元素更好的方法来获得np.array年:

years = f(dates)
#output:
array([2010, 2011, 2012], dtype=int8) #or dtype = string
Run Code Online (Sandbox Code Playgroud)

我正在使用稳定的numpy版本1.6.2.

python datetime numpy

51
推荐指数
6
解决办法
7万
查看次数

为数据框中的因子添加额外级别

我有一个包含数字和有序因子列的数据框.我有很多NA值,因此没有为它们分配级别.我将NA更改为"无应答",但因子列的级别不包含该级别,所以这是我的开始,但我不知道如何以优雅的方式完成它:

addNoAnswer = function(df) {
   factorOrNot = sapply(df, is.factor)
   levelsList = lapply(df[, factorOrNot], levels)
   levelsList = lapply(levelsList, function(x) c(x, "No Answer"))
   ...
Run Code Online (Sandbox Code Playgroud)

有没有办法直接将新级别应用于因子列,例如,如下所示:

df[, factorOrNot] = lapply(df[, factorOrNot], factor, levelsList)
Run Code Online (Sandbox Code Playgroud)

当然,这不能正常工作.

我希望保留级别的顺序,并将"无应答"级别添加到最后一个位置.

r dataframe categorical-data

23
推荐指数
4
解决办法
5万
查看次数

使用matplotlib绘制numpy datetime64

我有两个numpy数组1D,一个是datetime64格式的测量时间,例如:

array([2011-11-15 01:08:11, 2011-11-16 02:08:04, ..., 2012-07-07 11:08:00], dtype=datetime64[us])
Run Code Online (Sandbox Code Playgroud)

和其他具有整数数据的相同长度和维度的数组.
我想在matplotlib时间与数据中制作一个图.如果我直接输入数据,这就是我得到的:

plot(timeSeries, data)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有办法让时间更自然?例如,在这种情况下,月/年可以.

编辑:
我已经尝试过Gustav Larsson的建议,但是我收到了一个错误:

Out[128]:
[<matplotlib.lines.Line2D at 0x419aad0>]
---------------------------------------------------------------------------
OverflowError                             Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/IPython/zmq/pylab/backend_inline.pyc in show(close)
    100     try:
    101         for figure_manager in Gcf.get_all_fig_managers():
--> 102             send_figure(figure_manager.canvas.figure)
    103     finally:
    104         show._to_draw = []

/usr/lib/python2.7/dist-packages/IPython/zmq/pylab/backend_inline.pyc in send_figure(fig)
    209     """
    210     fmt = InlineBackend.instance().figure_format
--> 211     data = print_figure(fig, fmt)
    212     # print_figure will return None if there's nothing to draw:
    213     if data is None:

/usr/lib/python2.7/dist-packages/IPython/core/pylabtools.pyc in …
Run Code Online (Sandbox Code Playgroud)

python datetime numpy matplotlib

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

从Web导入 - 在Mathematica中设置用户代理


当我使用Mathermatica(Import["mysite","Data"])连接到我的站点并查看我的Apache日志时,我看到:
99.XXX.XXX.XXX - - [22/May/2011:19:36:28 +0200] "GET / HTTP/1.1" 200 6268 "-" "Mathematica/8.0.1.0.0 PM/1.3.1"
我可以将它设置为这样(当我连接到真正的浏览器时):
99.XXX.XXX.XXX - - [22/May/2011:19:46:17 +0200] "GET /favicon.ico HTTP/1.1" 404 183 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24"

browser import user-agent wolfram-mathematica

17
推荐指数
5
解决办法
1996
查看次数

line,= plot(x,sin(x))逗号代表什么?

我正在尝试制作一个动画情节.这是一个示例代码:

from pylab import *
import time

ion()

tstart = time.time()               # for profiling
x = arange(0,2*pi,0.01)            # x-array
line, = plot(x,sin(x))
for i in arange(1,200):
    line.set_ydata(sin(x+i/10.0))  # update the data
    draw()                         # redraw the canvas

print 'FPS:' , 200/(time.time()-tstart)
Run Code Online (Sandbox Code Playgroud)

我不明白line,.没有逗号,代码不起作用.

python numpy matplotlib

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

如何在matplotlib中重用图?

我想在4个轴上绘制图形,在每个轴上绘制前三个单独的绘图,最后在最后一个轴上绘制所有3个绘图.这是代码:

from numpy import *
from matplotlib.pyplot import *
fig=figure()
data=arange(0,10,0.01)
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4)

line1=ax1.plot(data,data)
line2=ax2.plot(data, data**2/10, ls='--', color='green')
line3=ax3.plot(data, np.sin(data), color='red')
#could I somehow use previous plots, instead recreating them all?
line4=ax4.plot(data,data)
line4=ax4.plot(data, data**2/10, ls='--', color='green')
line4=ax4.plot(data, np.sin(data), color='red')
show()
Run Code Online (Sandbox Code Playgroud)

结果图片是:
在此输入图像描述
有没有办法首先定义图,然后将它们添加到轴,然后绘制它们?这是我心中的逻辑:

#this is just an example, implementation can be different
line1=plot(data, data)
line2=plot(data, data**2/10, ls='--', color='green')
line3=plot(data, np.sin(data), color='red')
line4=[line1, line2, line3]
Run Code Online (Sandbox Code Playgroud)

现在在ax1上绘制line1,在ax2上绘制line2,在ax3上绘制line3,在ax4上绘制line4.

python matplotlib

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

动画二次网格变化(matshow)

我有一个带有一些值的NxN网格,每次更改都会改变.我找到了一种用matshow函数绘制单个网格配置的方法,但我不知道如何更新每个时间步的状态.这是一个简单的例子:

from pylab import *
from matplotlib import pyplot

a = arange(25)
a = a.reshape(5,5)
b = 10*rand(5,5)
matshow(a-b, cmap = cm.jet)
colorbar()
show()
Run Code Online (Sandbox Code Playgroud)

此代码生成以下图片: 在此输入图像描述
现在想象下一次步骤有些值会改变,所以这张图片也应如此.这是我心中的逻辑:

from pylab import *
from matplotlib import pyplot

a = arange(25)
a = a.reshape(5,5)
time=10
for t in range(time):
    b = 10*rand(5,5)
    print b
    matshow(a-b, cmap=cm.jet)
    colorbar()
show()
Run Code Online (Sandbox Code Playgroud)

这会产生10张照片.我想动画这个而不是生成单个图片,例如我想选择更改之间的时间步长(即帧速率).
此外,我愿意接受不同功能的建议,如果matshow不是这样的话,但请保持简单,我相对缺乏经验.

python numpy matplotlib

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

从Web导入Mathematica中的表 - 空单元格问题

我使用:
data=Import["http://weburl/","Data"]
从一个站点导入数据.在该页面上有表格.这将创建嵌套列表,您可以轻松地以表格形式获取数据.例如:
Grid[data[[1]]]
会给出这样的东西:

Player Age Shots Goals
  P1    24    10    2 
  P2    22     5    0
  P3    28    11    1
  ...
Run Code Online (Sandbox Code Playgroud)

现在,这是问题所在.如果html表中的一个单元格为空,例如"Age"的条目,那么在html中,这将是这样的:<td></td>.Mathematica根本不包括在列表中,甚至不包括例如"Null"值.相反,这一行只是由长度为3的列表表示,数据将被移动一列,因此您将获得"镜头"代替"年龄"和"目标"代替"镜头"和"目标" "会空的.例如,一个年龄未知的"P4"(html表中的空单元格),有10个镜头并且得分为0的目标将被导入为长度为3的列表而不是4并且移动一个:

Player Age Shots Goals
  P1    24    10    2 
  P2    22     5    0
  P3    10     0  
  ...
Run Code Online (Sandbox Code Playgroud)

这会带来一个难题,因为如果您有一些空字段,那么您无法从列表中分辨出它属于哪一列.在Mathematica中导入时,有没有办法在html表中的空单元格上放置"Null"?例如,列表中的P4元素将如下所示:
data[[1,5]]
{"P4","Null",10,0}
而不是:
{"P4",10,0}

import wolfram-mathematica

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

分段部件之间的平滑连接

分段智能函数示例:

f[x_]:=Piecewise[{{x^2, 0<x<1-epsilon},{x,1<x<2-epsilon},{2,x>2}}]
Run Code Online (Sandbox Code Playgroud)

有没有办法在区间epsilon中连接这些部分,所以我得到一个平滑的功能?

编辑:
顺便说一下,我并不是说它需要在连接点上是可推导的,只是在一些数值工作中它看起来像一个"自然"连接.

编辑2:
两个黑圈表示问题所在的点.我希望它看起来像一个可导出的函数(虽然它不需要严格的数学意义,但我不希望这两个峰值).红色圆圈代表它看起来很好的部分.
图片
我能做的是通过非线性拟合[x-epsilon,x + epsilon]来做到这一点,但我希望有一种更简单的分段函数方法.

wolfram-mathematica

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