我有一个Series包含布尔值的pandas 对象.如何获得包含NOT每个值的逻辑的系列?
例如,考虑一个系列包含:
True
True
True
False
Run Code Online (Sandbox Code Playgroud)
我想要的系列将包含:
False
False
False
True
Run Code Online (Sandbox Code Playgroud)
这似乎应该相当简单,但显然我错了我的mojo =(
在多GPU计算机中,如何指定应运行CUDA作业的GPU?
作为一个例子,在安装CUDA时,我选择安装NVIDIA_CUDA-<#.#>_Samples然后运行几个nbody模拟实例,但它们都在一个GPU 0上运行; GPU 1完全空闲(使用监控watch -n 1 nvidia-dmi).检查CUDA_VISIBLE_DEVICES使用
echo $CUDA_VISIBLE_DEVICES
Run Code Online (Sandbox Code Playgroud)
我发现这没有设定.我尝试使用它
CUDA_VISIBLE_DEVICES=1
Run Code Online (Sandbox Code Playgroud)
然后nbody再次运行但它也进入了GPU 0.
我看了相关的问题,如何选择指定的GPU来运行CUDA程序?,但deviceQuery命令不在CUDA 8.0 bin目录中.除此之外$CUDA_VISIBLE_DEVICES$,我看到其他帖子引用环境变量,$CUDA_DEVICES但这些没有设置,我没有找到有关如何使用它的信息.
虽然与我的问题没有直接关系,但是使用nbody -device=1我能够让应用程序在GPU 1上运行但是使用nbody -numdevices=2不能在GPU 0和1上运行.
我在使用bash shell运行的系统上测试这个,在CentOS 6.8上,使用CUDA 8.0,2 GTX 1080 GPU和NVIDIA驱动程序367.44.
我知道在使用CUDA编写时,您可以管理和控制要使用的CUDA资源,但在运行已编译的CUDA可执行文件时,如何从命令行管理?
我想在特定的conda环境中添加一个conda通道,但是当我使用时
conda config --add channels glotzer
Run Code Online (Sandbox Code Playgroud)
该频道现在可从我所有的conda环境中获得.除了从其他环境测试安装之外,该~/.condarc文件还具有以下内容:
channels:
- glotzer
- defaults
Run Code Online (Sandbox Code Playgroud)
我如何配置conda以便通道仅在特定环境中可用?
我确实在通道文档中发现,对于conda> = 4.1.0,将通道放在底部~/.condarc会阻止添加的通道覆盖核心包集.
默认情况下,conda现在优先于较低优先级通道的任何版本的优先级较高的通道中的包.因此,您现在可以安全地将频道放在频道列表的底部,以提供不在默认频道中的其他包,并且仍然确信这些频道不会覆盖核心包集.
我希望这可以防止大多数问题,除非在一个环境中你确实希望通过通道添加包来覆盖核心包.
我想使用循环来加载和/或修改数据,并使用Bokeh在循环中绘制结果(我熟悉Matplotlib的axes.color_cycle).这是一个简单的例子
import numpy as np
from bokeh.plotting import figure, output_file, show
output_file('bokeh_cycle_colors.html')
p = figure(width=400, height=400)
x = np.linspace(0, 10)
for m in xrange(10):
y = m * x
p.line(x, y, legend='m = {}'.format(m))
p.legend.location='top_left'
show(p)
Run Code Online (Sandbox Code Playgroud)
这会产生这个情节

如何使颜色循环而不编码颜色列表和模数操作,以便在颜色数量用完时重复?
有一些关于GitHub的讨论,问题351和2201,但目前尚不清楚如何使这项工作.搜索的时候,我得到了四支安打文档为cycle color实际上没有包含这个词cycle的页面上的任何地方.
我在R中有一个浮点列表.对于给定的整数,N,我想在列表中找到最大N值的索引.所以例如,如果N是2,我想找到列表中两个最大值的索引.我该怎么做呢?
我不能重新排序我的清单.这就是我需要指数的原因.
我正在使用matplotlib生成3D图.我希望能够放大感兴趣的领域.目前,我能够平移但不能缩放.看一下mplot3d API,我了解了一下can_pan():
Return True if this axes supports the pan/zoom button functionality.
3D axes objects do not use the pan/zoom button.
Run Code Online (Sandbox Code Playgroud)
和 can_zoom():
Return True if this axes supports the zoom box button functionality.
3D axes objects do not use the zoom box button.
Run Code Online (Sandbox Code Playgroud)
它们都返回False(我认为can_pan返回False,因为轴不能平移和缩放两者但是我可能正在读错API).
有没有办法启用Zoom?API表示它不使用按钮.有没有办法启用缩放或设置它can_pan()并can_zoom()返回True?
以下是代码片段:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
data = np.genfromtxt('data_file.txt')
fig1 = plt.figure()
ax1 = fig1.gca(projection='3d')
ax1.scatter(data[:,0],data[:,1],data[:,2], c='r', marker='.')
plt.show()
ax1.can_zoom() …Run Code Online (Sandbox Code Playgroud) 我觉得这pandas.read_csv不是一个直接的互惠函数df.to_csv.在此图中,请注意当使用所有默认设置时,原始和最终DataFrame的区别在于"未命名"列.
In [1]: import pandas as pd
In [2]: orig_df = pd.DataFrame({'AAA' : [4,5,6,7], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]}); orig_df
Out[2]:
AAA BBB CCC
0 4 10 100
1 5 20 50
2 6 30 -30
3 7 40 -50
[4 rows x 3 columns]
In [3]: orig_df.to_csv('test.csv')
In [4]: final_df = pd.read_csv('test.csv'); final_df
Out[4]:
Unnamed: 0 AAA BBB CCC
0 0 4 10 100
1 1 5 20 50
2 2 6 30 -30
3 …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行一个简单的命令,使用多处理程序按名称猜测性别。这段代码可以在以前的机器上运行,所以也许我的设置与此有关。
下面是我的多处理代码:
import sys
import gender_guesser.detector as gender
import multiprocessing
import time
d = gender.Detector()
def guess_gender (name):
n = name.title() # make first letter upper case and the rest lower case
g = d.get_gender(n) # guess gender
return g
ls = ['john','joe','amamda','derick','peter','ashley','john','joe','amamda','derick','peter','ashley']
t=time.time()
results=[]
def callBack(x):
results.append(x)
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count()-1, maxtasksperchild=1)
for n in ls:
print (n)
pool.apply_async(guess_gender,args=[n],callback=callBack)
pool.close()
pool.join()
results = pd.concat(results)
print(time.time()-t)
Run Code Online (Sandbox Code Playgroud)
它只是运行而不会做任何事情。在我的cmd窗口中,错误消息的结尾处显示以下内容:
AttributeError: Can't get attribute 'guess_gender' on <module '__main__' (built-in)>
Run Code Online (Sandbox Code Playgroud)
在Anaconda上运行python 3.6.1版本:
import sys
print(sys.version) …Run Code Online (Sandbox Code Playgroud) 如果我有一个 NumPy 数组,
>>> x = np.arange(10)
Run Code Online (Sandbox Code Playgroud)
使用对象方法获取有关该数组的信息有什么区别
>>> x.mean()
4.5
Run Code Online (Sandbox Code Playgroud)
与使用 NumPy 函数相比
>>> np.mean(x)
4.5
Run Code Online (Sandbox Code Playgroud)
我期望对象方法正在调用函数,但有些示例中函数不包含为方法,例如
>>> np.median(x)
4.5
>>> x.median()
AttributeError: 'numpy.ndarray' object has no attribute 'median'
Run Code Online (Sandbox Code Playgroud)
排除某些函数似乎表明函数式方法比面向对象的方法更完整或更受青睐,因为它消除了来回切换的需要。是否有意排除某些方法?与另一种方法相比,一种方法是否有固有的优势?