小编Lit*_*les的帖子

使用Ipython ipywidget创建变量?

这看起来很简单但我找不到一个例子或者自己解决这个问题.如何使用ipywidget小部件创建或返回可在以下单元格中使用的python变量/对象(如列表或字符串)?

ipython jupyter-notebook ipywidgets

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

如何做多列from_tuples?

我得到了如何使用pd.MultiIndex.from_tuples()以改变类似的东西

       Value
(A,a)  1
(B,a)  2
(B,b)  3
Run Code Online (Sandbox Code Playgroud)

                Value
Caps Lower      
A    a          1
B    a          2
B    b          3
Run Code Online (Sandbox Code Playgroud)

但是如何更改表单中的列元组

       (A, a)  (A, b) (B,a)  (B,b)
index
1      1       2      2      3
2      2       3      3      2
3      3       4      4      1
Run Code Online (Sandbox Code Playgroud)

进入表格

 Caps         A              B
 Lower        a       b      a      b
 index
 1            1       2      2      3
 2            2       3      3      2
 3            3       4      4      1
Run Code Online (Sandbox Code Playgroud)

非常感谢.


编辑:我有一个元组列标题的原因是当我将具有单个级别列的DataFrame加入到具有多级列的DataFrame时,它将多列转换为字符串格式的元组并将单个级别保留为单个串.


编辑2 - 替代解决方案:如上所述,此处的问题是通过join具有不同列级别大小的问题产生的.这意味着多列被缩减为字符串元组.解决这个问题,在我用于 …

columnname multiple-columns multi-index pandas

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

如何在MATLAB中使用方程填充矩阵?

我有一个A任意尺寸mx 的矩阵,n并希望用一个等式填充它,例如,对于每个元素a_ij A,i = 1,...,m和j = 1,...,n,我想,

a_ij = i ^ 2 + j ^ 2.

在手动填写的Matlab中,它看起来与此类似,

A = [1^2+1^2, 1^2+2^2, ..., 1^2+j^2, ..., 1^2+n^2;
     2^2+1^2, 2^2+2^2, ..., 2^2+j^2, ..., 2^2+n^2;

     .
     .
     .

     i^2+1^2, i^2+2^2, ..., i^2+j^2, ..., i^2+n^2;

     .                                       
     .
     .

     m^2+1^2, m^2+2^2, ..., m^2+j^2, ..., m^2+n^2]
Run Code Online (Sandbox Code Playgroud)

所以前几个术语是:

[2, 5, 10,17,...

 5, 8, 13,20,...

 10,13,18,25,...

 17,20,25,32,...
]
Run Code Online (Sandbox Code Playgroud)

matlab matrix

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

如何在多索引列上使用 Pandas .assign() 方法链?

对于单级索引列,我会执行以下操作

arrays = [['one', 'two', ]]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(pd.np.random.randn(3, 2), index=['A', 'B', 'C'], columns=index)
print(df)


first   one two
A   0.919921    -1.407321
B   1.100169    -0.927249
C   -0.520308   0.619783

print(df.assign(one=lambda x: x.one * 100))

first   one         two
A       144.950877  0.633516
B       -0.593133   -0.630641
C       -5.661949   -0.738884
Run Code Online (Sandbox Code Playgroud)

现在,当我有一个 MultiIndex 列时,我可以使用访问所需的列,.loc但我无法将其分配给任何内容,因为它出现了错误SyntaxError: keyword can't be an expression

这是一个例子,

arrays = [['bar', 'bar'],
          ['one', 'two']]

tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df …
Run Code Online (Sandbox Code Playgroud)

method-chaining multi-index pandas

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

MATLAB中的多种日期格式

在MATLAB中格式化日期时间,datetrings和datenums时,有两种不同的方式表示分钟和月份,分别为M和m或m和M. 具体来说,当您使用datestr时使用它与使用datetime时不同.这是一个例子,

startdate='01/05/2015 12:35:22';
startdt=datetime(startdate,'InputFormat','dd/MM/yyyy HH:mm:ss');
startstr=datestr(startdt,'dd/mm/yyyy HH:MM:SS');
Run Code Online (Sandbox Code Playgroud)

看看我们如何使用小写字母m表示月份和日期时间我们使用大写字母M表示月份.

为什么MATLAB具有适用于这些命令的不同日期格式?在我的代码中实现一致样式的日期格式的最佳方法是什么?

matlab datetime date-formatting

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

在for循环中哪个更pythonic:zip或enumerate?

考虑到可扩展性和可读性,其中哪一个被认为是更加pythonic?使用enumerate:

group = ['A','B','C']
tag = ['a','b','c']

for idx, x in enumerate(group):
    print(x, tag[idx])
Run Code Online (Sandbox Code Playgroud)

或使用zip:

for x, y in zip(group, tag):
    print(x, y)
Run Code Online (Sandbox Code Playgroud)

我问的原因是我一直在混合两者.我应该遵循一种标准方法,但它应该是什么?

python for-loop iterable

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

如何在 VS Code 中为选择的文件、glob 或类似文件关闭排序导入?

我正在尝试在 python 中模拟导入以进行测试。我的代码看起来像这样。

"""Python file description."""

import sys
import pytest

import datetime as dt

from unittest.mock import Mock

sys.modules['module_A'] = Mock()

from module_to_test import function_to_test
Run Code Online (Sandbox Code Playgroud)

我需要模拟module_A作为module_to_test.

保存时,VSCode 会自动按字母顺序排序,因此在尝试从具有依赖项的模块导入后创建 Mock。

如何防止排序导入对文件子集进行排序?这可能是通过文件列表、glob、regex 或类似的?

测试文件的全局模式 ./tests/test_*.py.


更新- 下面发布了部分解决方案。

python visual-studio-code vscode-settings

3
推荐指数
3
解决办法
3289
查看次数

Matplotlib:在同一轴位置显示次要刻度和主要刻度

我有一个包含主要和次要蜱的情节。它是一个分组条形图,我不希望图例描述每个类别,而是希望每个类别都显示在小刻度中。然后我希望每个组在主要刻度中都有名称。

我可以在某种程度上做到这一点,但主要刻度似乎覆盖了同一位置的次要刻度。我怎样才能关闭它?

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {
        0: [84, 41],
        1: [0, 0],
        2: [18.5, 3.5],
        3: [65.5, 124],
        4: [0.5, 0]
    },
    index = ['A', 'B']
)

ax = df.plot.bar(
    rot=0,
    legend=False,
    color=['gray', 'red', 'green', 'lightblue', 'darkblue',],
)

labels = df.unstack().index
label_x, label_mode = [], []

for rect, idx in zip(ax.patches, labels):
    print(rect, idx)
    label_mode.append(idx[0])
    label_x.append(rect.xy[0] + (rect.get_width() * 0.5))

ax.set_xticklabels(['A', 'B'])
ax.set_xticks(label_x, minor=True)
ax.set_xticklabels(label_mode, minor=True)
ax.tick_params(axis='x', which='minor', length=0)

ax.tick_params(axis='x', which='major', length=10, …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib pandas

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

使用Cellfun多次在单个阵列上执行功能

我希望使用cellfun类似于如何使用bsxfun在nx1单元格和1x1单元格上应用函数,即对于bsxfun,

multi = bsxfun(@times, rand(1,10), 2)
Run Code Online (Sandbox Code Playgroud)

然而,当在cellfun中做这样的事情时,它会抱怨细胞大小不一样.我该如何解决这个问题?

要用于单元格示例:

我的实际问题非常简单,我可以看到其他方法,但我最初的直觉是使用cellfun.不能把我带到这里.这是我的实际问题,

use_var = {[0,1,0,1,1,1,1,0]}; rule_dep = {[1,3],[1,2,4],[3,5,7],[5],[4,8]};
Run Code Online (Sandbox Code Playgroud)

我现在希望每个rule_dep都使用indexuse_var.我的第一次尝试是,

use_rule = cellfun(@(x,y) y{x}, rule_depend, use_var, 'Uniformoutput', false);
Run Code Online (Sandbox Code Playgroud)

但会引发尺寸问题.

matlab

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

如何在MATLAB中找到多于一列的多列?

我有一个列向量,是其他多列的平均值(在向量中).我希望索引矩阵的每个元素都大于平均向量.我能够一次做到这一点:

idx = y1<y2
Run Code Online (Sandbox Code Playgroud)

但是,如果y2是矩阵,则会出现错误.我目前解决的问题是:

y1 = [y1;y1]
Run Code Online (Sandbox Code Playgroud)

但这是相当不优雅的,并没有考虑y2到未知大小.问候

matlab

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

熊猫改变组中的位置/等级

我有以下DataFrame两组动物和每天吃多少食物,

df = pd.DataFrame({'animals': ['cat', 'cat', 'dog', 'dog', 'rat', 
                               'cat', 'rat', 'rat', 'dog', 'cat'],
                   'food': [1, 2, 2, 5, 3, 1, 4, 0, 6, 5]},
                  index=pd.MultiIndex.from_product([['group1'] + ['group2'],
                                                    list(range(5))])
                     ).rename_axis(['groups', 'day'])

df

            animals food
groups  day     
group1  0   cat     1
        1   cat     2
        2   dog     2
        3   dog     5
        4   rat     3
group2  0   cat     1
        1   rat     4
        2   rat     0
        3   dog     6
        4   cat     5
Run Code Online (Sandbox Code Playgroud)

我可以"映射"/将其转换为新列,以了解每天应该给每只动物多少食物daily_meal.

df['daily_meal'] = df.groupby(['animals', 'groups']).transform('mean')
df

            animals food …
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

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

不使用保持(或全部)的不同颜色散点

我想使用三组数据在MATLAB中创建一个散点图.X,Yc.X并且Y是它们各自的轴图,但是c在每个散点点分类上保存信息(整数值).我希望将每个分类图作为单独的颜色.这些整数值很简单,可以转换成相应的颜色选择,所以没有问题.目前,C作为我的颜色选择,我正在使用,

    hold on
for k=1:K
    scatter(X(c==k,:),Y(c==k),[],C(k,:),'filled');
end
Run Code Online (Sandbox Code Playgroud)

我对这种动机是希望建立一个UpdateFcnDataCursorManager为了显示与数据光标每个点的日期.我无法使用多个散点图进行此操作,并且这是解决问题的最简单方法.

matlab scatter colors scatter-plot matlab-figure

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