我想初始化并填充一个numpy数组.什么是最好的方法?
这符合我的预期:
>>> import numpy as np
>>> np.empty(3)
array([ -1.28822975e-231, -1.73060252e-077, 2.23946712e-314])
Run Code Online (Sandbox Code Playgroud)
但这不是:
>>> np.empty(3).fill(np.nan)
>>>
Run Code Online (Sandbox Code Playgroud)
没有?
>>> type(np.empty(3))
<type 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)
在我看来,np.empty()调用返回正确类型的对象,所以我不明白为什么.fill()不工作?
分配np.empty()第一个工作结果正常:
>>> a = np.empty(3)
>>> a.fill(np.nan)
>>> a
array([ nan, nan, nan])
Run Code Online (Sandbox Code Playgroud)
为什么我需要分配给变量才能使用np.fill()?我错过了一个更好的选择吗?
是否有可能在numpy中有一个3-D记录数组?(也许这是不可能的,或者只是一种更容易的方式来做事 - 我对其他选择持开放态度).
假设我想要一个包含3个变量数据的数组(比如temp,precip,humidity),每个变量的数据实际上是2年(行)和6个月数据(列)的二维数组,我可以创建像这样:
>>> import numpy as np
>>> d = np.array(np.arange(3*2*6).reshape(3,2,6))
>>> d
#
# comments added for explanation...
# jan feb mar apr may Jun
array([[[ 0, 1, 2, 3, 4, 5], # yr1 temp
[ 6, 7, 8, 9, 10, 11]], # yr2 temp
[[12, 13, 14, 15, 16, 17], # yr1 precip
[18, 19, 20, 21, 22, 23]], # yr2 precip
[[24, 25, 26, 27, 28, 29], # yr1 humidity
[30, 31, 32, 33, 34, …Run Code Online (Sandbox Code Playgroud) 我正在使用matplotlib的imshow()函数来显示pandas.DataFrame.
我想从DataFrame.index和DataFrame.columns列表中绘制x和y轴的标签和刻度,但我无法弄清楚如何做到这一点.
假设data是pandas.DataFrame:
>>> print data
<class 'pandas.core.frame.DataFrame'>
Index: 201 entries, 1901 to 2101
Data columns:
jan 201 non-null values
feb 201 non-null values
mar 201 non-null values
apr 201 non-null values
may 201 non-null values
jun 201 non-null values
jul 201 non-null values
aug 201 non-null values
sep 201 non-null values
oct 201 non-null values
nov 201 non-null values
dec 201 non-null values
Run Code Online (Sandbox Code Playgroud)
当我这样做:
ax1 = fig.add_subplot(131, xticklabels=data.columns, yticklabels=data.index)
ax1.set_title("A")
ax1.tick_params(axis='both', …Run Code Online (Sandbox Code Playgroud) 实施真值表有一个很好的一般模式吗?
我正在重新编写一些遗留代码(C++)并且意识到我正在使用的函数相当于具有3个二进制输入和8个可能输出的真值表.以下是八个测试中的两个和相应输出的示例:
// - + +
if ( (prevdst5 < 0.0) && (dst5 > 0.0) && (nextdst5 > 0.0) ){
thawpct = (dst5 / (dst5 - prevdst5));
}
// - - +
if ( (prevdst5 < 0.0) && (dst5 < 0.0) && (nextdst5 > 0.0) ){
thawpct = (nextdst5 / (nextdst5 - dst5));
}
// other cases...
return thawpct;
Run Code Online (Sandbox Code Playgroud)
基本上我想知道是否有更清晰,更可维护/可扩展的方式来设置它.
*代码库是学术界使用的生态系统模型,因此维护和扩展相当于类似的东西,具体取决于编码器的角度.
我有一个Bokeh应用程序,它利用各种小部件事件的Python回调.对于某些事件,我想在回调Python函数之前执行一些JavaScript代码.这可能吗?
在这种情况下,Python回调可能会长时间运行,并且我想在长时间运行的Python代码执行之前和之后启动和停止Javascript微调器对象.
生成正态分布的整数集的最佳方法是什么numpy?我知道我可以用这样的东西得到浮点数:
In [31]: import numpy as np
In [32]: import matplotlib.pyplot as plt
In [33]: plt.hist(np.random.normal(250, 1, 100))
Out[33]:
(array([ 2., 5., 9., 10., 19., 21., 13., 10., 6., 5.]),
array([ 247.52972483, 247.9913017 , 248.45287858, 248.91445546,
249.37603233, 249.83760921, 250.29918608, 250.76076296,
251.22233984, 251.68391671, 252.14549359]),
<a list of 10 Patch objects>)
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用了 boost log,虽然配置起来很棘手,但它通常运行良好。
但是,现在我想向我的应用程序添加一些更高级的过滤逻辑,但我无法弄清楚。
我想要的是有两个“级别”的过滤:
debug,warn,note等等,这是设置和工作。因此,例如,我希望能够仅查看严重性 >= 且note在 a NAMED_SCOPEof内的记录monthly。
我已经成功地使用了BOOST_LOG_NAMED_SCOPE()宏,并且可以在日志消息中看到范围堆栈。
我曾尝试使用 实现自定义过滤器boost::phoenix,但无法使其正常工作。
我在此处粘贴的代码在我的应用程序中编译(我正在努力将其剥离,以便我可以在此处包含一个完整的工作最小示例),但该my_filter(..)函数中似乎没有发生任何事情。我认为我没有正确地将作用域堆栈传递到绑定函数中,因为如果我std::cout在作用域堆栈的循环中放置一个语句,我看不到任何打印内容。
这里的最小例子:
// Excerpt from MyLogger.cpp class
bool my_filter(attrs::named_scope_list const& scopeList) {
for (attrs::named_scope_list::const_iterator iter = scopeList.begin(); iter != scopeList.end(); ++iter) {
if ( (*iter).scope_name == "monthly") {
return true;
}
}
return false;
}
void setup_logging(std::string lvl) {
logging::core::get()->add_global_attribute(
"Scope", attrs::named_scope()
);
logging::add_console_log(
std::clog,
keywords::format …Run Code Online (Sandbox Code Playgroud) 使用Bokeh,我如何获得 的Renderer(或GlyphRenderer)句柄Annotation?这可能吗?
我希望能够使用交互式图例打开和关闭a Band(即Annotation),因此我需要能够将 的列表传递Renderers给LegendItem构造函数。
这段代码:
maxline = fig.line(x='Date', y=stn_max, line_width=0.5, legend=stn_max, name="{}_line".format(stn_max), color=stn_color, alpha=0.75, source=source)
minline = fig.line(x='Date', y=stn_min, line_width=0.5, legend=stn_min, name="{}_line".format(stn_min), color=stn_color, alpha=0.75, source=source)
band = bkm.Band(base='Date', lower=stn_min, upper=stn_max, fill_alpha=0.50, line_width=0.5, fill_color=stn_color, source=source)
bkm.LegendItem(label=stn, renderers=[maxline, minline, band])
Run Code Online (Sandbox Code Playgroud)
产生这个错误
...
ValueError: expected an element of List(Instance(GlyphRenderer)), got seq with invalid items [Band(id='1091', ...)]
Run Code Online (Sandbox Code Playgroud) 如何使用另一个类的线程正在接收的消息更新 GUI 中的数据?
我有一个带有从服务器接收数据的线程的类。每当从服务器获取消息时,该线程就会引发一个事件。此事件在 Starter Class(包含 GUI 的主类)内处理。事件处理程序(比如说DisplayData() 必须显示其他类收到的消息。我的代码是这样的
Class GUI
receiverObj = New Receiver()
Addhandler receiverObj.MessageAlert, Addressof DisplayData
...
...
Sub DisplayData()
Dim str As receiverObj.ReceiveData
lbEvents.Add.Items(str) ' lbEvents is a ListBox inside the GUI that displays messages from Receiver
End Sub
End Class
Class Receiver
Public Event MessageAlert()
Sub New ()
MyTcpClient = New TcpClient(hostIP, port)
MyTcpClient.GetStream.BeginRead(ReceiveData, 0, PacketSize, AddressOf ReceiveStream, Nothing)
End Sub
Public Sub ReceiveStream(ByVal ar As IAsyncResult)
Dim ByteCount As Integer
Try
ByteCount = …Run Code Online (Sandbox Code Playgroud) 我有一个名为"poc.py"的脚本,它带有一个位置命令行参数"inputfile.txt".poc.py脚本用于argparse处理位置命令行参数,然后将args dict传递给main().进入后main(),我读取输入文件,进行一些处理,创建一个pandas DataFrame,最后绘制数据.我很难操纵我的DataFrame并控制结果图的确切格式,所以我想尝试ipython以交互方式探索这个,看看我是否能更好地掌握处理pandas/matplotlib的"pythonic"方法.
所以我尝试使用ipython并运行脚本,但是我无法让ipython保留我的脚本命名空间.
我试过这个:
$ ipython --pylab -i poc.py inputfile.txt
Run Code Online (Sandbox Code Playgroud)
哪个运行我的脚本就好了,并显示图(即使没有阻塞plt.show()调用),但是当脚本完成时,ipython who和whos命令说Interactive namespace is empty.同样,如果我首先进入ipython shell然后执行:
In [2]: run poc.py inputfile.txt
Run Code Online (Sandbox Code Playgroud)
当脚本完成时(再次,大量输出,图表显示)我得到相同的结果:一个空的交互式命名空间.
在理解如何运行外部并使用ipython以交互方式探索脚本中的数据/对象方面,我缺少什么?
这是我的脚本(poc.py)设置方式的准系统示例:
import numpy as np
import matplotlib as plt
import pandas as pd
# etc ...more libraries and custom functions here...
def main(args):
data = np.genfromtxt(args.inputfile)
# (omitted)...more data processing / manipulation...
pdata = pd.DataFrame(data)
# (omitted)...more data …Run Code Online (Sandbox Code Playgroud) python ×7
numpy ×3
bokeh ×2
c++ ×2
pandas ×2
arrays ×1
boost ×1
ipython ×1
javascript ×1
logging ×1
matplotlib ×1
plot ×1
scipy ×1
statistics ×1
vb.net ×1