让我们说我有一个MultiIndex系列s
:
>>> s
values
a b
1 2 0.1
3 6 0.3
4 4 0.7
Run Code Online (Sandbox Code Playgroud)
我想应用一个使用行索引的函数:
def f(x):
# conditions or computations using the indexes
if x.index[0] and ...:
other = sum(x.index) + ...
return something
Run Code Online (Sandbox Code Playgroud)
我怎么能做s.apply(f)
这样的功能?这种操作的推荐方法是什么?我期望获得一个新系列,其中每个行和相同的MultiIndex都应用了此函数产生的值.
我想生成x和y坐标的相关数组,以便测试各种matplotlib绘图方法,但我在某处失败了,因为我不能numpy.random.multivariate_normal
给我想要的样本.理想情况下,我希望我的x值介于-0.51和51.2之间,我的y值介于0.33和51.6之间(虽然我认为相等的范围可以,因为我之后可以约束该情节),但我不确定是什么意思(我应该使用0,0?)和协方差值来从函数中获取这些样本.
我有以下带有MultiIndex(Z,A)的Pandas Dataframe:
H1 H2
Z A
0 100 200 0.3112 -0.4197
1 100 201 0.2967 0.4893
2 100 202 0.3084 -0.4873
3 100 203 0.3069 NaN
4 101 203 -0.4956 NaN
Run Code Online (Sandbox Code Playgroud)
问题:如何选择A = 203的所有项目?我试过df[:,'A']
但它不起作用.然后我在在线文档中找到了这个,所以我尝试了:
df.xs(203,level='A')
但我得到:
" TypeError: xs() got an unexpected keyword argument 'level'
"
我也没有在安装的doc(df.xs?
)中看到这个参数:
"参数---------- key:object包含的一些标签索引,或部分在MultiIndex轴中:int,default 0用于检索副本上的横截面的轴:boolean,default True是否复制数据"
注意:我有开发版本.
编辑:我找到了这个帖子.他们建议像:
df.select(lambda x: x[1]==200, axis=0)
Run Code Online (Sandbox Code Playgroud)
我仍然想知道df.xs使用level参数发生了什么,或者当前版本中推荐的方式是什么.
我在matplotlib中使用方形标记进行散点图,如下所示:
.
我希望实现这样的目标:
这意味着我必须调整标记大小和图形大小/比例,使标记之间没有空白区域.每个索引单位也应该有一个标记(x和y都是整数),所以如果y从60变为100,则y方向应该有40个标记.目前我正在手动调整它.对于实现这一目标的最佳方法有什么想法吗?
我有一个克隆到的Git存储库,在存储库的根目录myproject
有一个__init__.py
,使整个东西成为可导入的Python包。
我正在尝试setup.py
为该软件包编写一个setuptools ,它也位于该__init__.py
文件旁边的存储库的根目录中。我想setup.py
将其作为软件包安装在目录中。如果setup.py本身作为安装的一部分出现,那很好,但是如果没有,那会更好。理想情况下,它也应在可编辑模式(pip install -e .
)下工作
是否完全支持此配置?我可以通过对进行package_dir= {"": ".."},
参数设置来使其工作setup()
,告诉它myproject
在当前目录之上的目录中进行查找。但是,这要求必须始终从名为的目录中安装软件包myproject
,例如,通过进行安装pip
,或者如果有人正在使用名为的Git克隆进行安装,或者不是myproject-dev
以其他数量的其他方式进行安装,则情况似乎并非如此。案件。
我正在考虑的另一个技巧是在存储库内部.
命名的符号链接mypackage
。那应该行得通,但是我想先检查一下是否有更好的方法。
我想对大熊猫数据帧(数百万行)的行进行聚合操作(总和),这些行由几个固定列(最多10列)的条件决定.这些列只有整数值.
我的问题是我必须进行这种操作(查询+聚合)数千次(~100000次).我认为聚合部分没有太多优化,因为它只是一个简单的总和.执行此任务的最有效方法是什么?有没有什么方法可以在我的条件列上建立一个'索引',以加快每个查询?
在matplotlib中,在底部和顶部x轴上有刻度标签的方法是什么?我搜索了很多,仍然无法找到如何做到这一点.
我是新手,我正在尝试根据csv文件的某些字段创建一个distinct().count().
Csv结构(没有标题):
id,country,type
01,AU,s1
02,AU,s2
03,GR,s2
03,GR,s2
Run Code Online (Sandbox Code Playgroud)
加载.csv我输入:
lines = sc.textFile("test.txt")
Run Code Online (Sandbox Code Playgroud)
然后lines
根据预期对返回的3 进行明确计数:
lines.distinct().count()
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何根据我们说id
和做出明确的计数country
.
我有一个二维张量:
samples = torch.Tensor([
[0.1, 0.1], #-> group / class 1
[0.2, 0.2], #-> group / class 2
[0.4, 0.4], #-> group / class 2
[0.0, 0.0] #-> group / class 0
])
Run Code Online (Sandbox Code Playgroud)
以及对应于一个类的每个样本的标签:
labels = torch.LongTensor([1, 2, 2, 0])
Run Code Online (Sandbox Code Playgroud)
所以len(samples) == len(labels)
。现在我想计算每个类别/标签的平均值。因为有 3 个类(0、1 和 2),所以最终向量应该具有维度[n_classes, samples.shape[1]]
所以预期的解决方案应该是:
result == torch.Tensor([
[0.1, 0.1],
[0.3, 0.3], # -> mean of [0.2, 0.2] and [0.4, 0.4]
[0.0, 0.0]
])
Run Code Online (Sandbox Code Playgroud)
问题:如何在纯 pytorch 中完成此操作(即没有 numpy,以便我可以自动分级)并且理想情况下没有 for 循环?
我有一个带有正值和负值的颜色条,它们是自动生成的(我没有设置它们).不幸的是,减号打破了文本的垂直对齐方式.如何将勾选标签中的所有文本对齐到右边,或者在我的正数之前插入一个空格以使其看起来很好?
python ×9
matplotlib ×3
pandas ×3
apache-spark ×1
correlation ×1
distribute ×1
numpy ×1
packaging ×1
pyspark ×1
pytorch ×1
random ×1
scatter-plot ×1
setuptools ×1