小编CDJ*_*DJB的帖子

Spyder 绘图内联

设置:Anaconda 2.0.0(Win 64)、Spyder(Anaconda 附带的 2.3.0rc)

我配置图形:工具 > 首选项 > iPython 控制台 > 图形 > 图形后端 > 内联

但是无论我做什么,图形总是在单独的窗口中打开?有没有办法强制它们在控制台中内联?

python graphics plot spyder anaconda

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

如何在 matplotlib 中显示 LaTeX f 字符串

在 Python 3.6 中,有一个新的 f-string 在字符串中包含变量,这很棒,但是如何正确应用这些字符串来为 matplotlib 打印上标或下标?

(要实际看到带有下标的结果,您需要foo在 matplotlib 图上绘制变量)

换句话说,我如何获得这种行为:

    var = 123
    foo = r'text$_{%s}$' % var
    text<sub>123</sub>
Run Code Online (Sandbox Code Playgroud)

使用新的 f-string 语法?到目前为止,我已经尝试将原始字符串文字与 f 字符串结合使用,但这似乎只是将下标应用于变量的第一个字符:

    var = 123
    foo = fr'text$_{var}$'
    text<sub>1</sub>23
Run Code Online (Sandbox Code Playgroud)

因为 the{有一个不明确的功能,作为分隔r应该考虑的下标和分隔f变量的地方。

python string matplotlib python-3.x f-string

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

生成复合饼图或饼图饼图

下面是一个复合饼图的示例,也称为使用 Excel 绘制的饼图。是否可以使用 python 创建这样的图形?

在此输入图像描述

python excel charts graph matplotlib

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

pandas.DataFrame.copy(deep=True) 实际上并不创建深层复制

我已经用 pd.Series 和 pd.DataFrame 进行了一段时间的实验,并遇到了一些奇怪的问题。假设我有以下 pd.DataFrame:

df = pd.DataFrame({'col':[[1,2,3]]})

请注意,该数据框包括包含列表的列。我想修改此数据框的副本并返回其修改后的版本,以便初始版本保持不变。为了简单起见,假设我想在其单元格中添加整数“4”。

我尝试过以下代码:

def modify(df):
    dfc = df.copy(deep=True)
    dfc['col'].iloc[0].append(4)
    return dfc

modify(df)
print(df)
Run Code Online (Sandbox Code Playgroud)

问题是,除了新的副本之外dfc,初始的 DataFramedf也被修改了。为什么?我应该怎么做才能防止初始数据帧被修改?我的pandas版本是0.25.0

python copy list dataframe pandas

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

find_peaks 未识别阵列开头的峰值

我试图找到一种矢量化方法来查找数组中的第一个位置,其中的值不会高于 n 个先前数字的最大值。我想过使用 scipy.signal 的 find_peaks 方法来查找局部最大值。我认为如果你定义距离,假设 10 n 是 10,那么它确实如此。但不幸的是,距离的条件必须在两个方向上都满足 - 以前的和即将到来的数字。有没有其他方法或方法可以找到这样的东西?

例子:

arr1 = np.array([1.        , 0.73381293, 0.75649351, 0.77693474, 0.77884614,
       0.81055903, 0.81402439, 0.78798586, 0.78839588, 0.82967961,
       0.8448    , 0.83276451, 0.82539684, 0.81762916, 0.82722515,
       0.82101804, 0.82871127, 0.82825041, 0.82086957, 0.8347826 ,
       0.82666665, 0.82352942, 0.81270903, 0.81191224, 0.83180428,
       0.84975767, 0.84044236, 0.85057473, 0.8394649 , 0.80000001,
       0.83870965, 0.83962262, 0.85039371, 0.83359748, 0.84019768,
       0.83281732, 0.83660132])

from scipy.signal import find_peaks
peaks, _ = find_peaks(arr1, distance=10)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它会找到位置 10 和 27。但位置 0 也有 10 个不高的后续元素。我怎样才能找到那些?

python numpy vectorization scipy

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

如何在迭代另一个列表时填充新列表?

代码

#Variables
var1 = ['Warehouse Pencil 1.docx', 'Production Pen 20.docx']

list1 = []
for x in var1:
    splitted = x.split()
    a = [splitted[0] + ' ' + splitted[1]]
    list1.append(a)
    print(list1)
Run Code Online (Sandbox Code Playgroud)

输出

[['Warehouse Pencil']]
[['Warehouse Pencil'], ['Production Pen']]
Run Code Online (Sandbox Code Playgroud)

目标

我打算拆分列表,获取每个部分的第 1 个和第 2 个单词,然后将它们放入一个新列表中。

为什么我的输出给我一个奇怪的输出?我哪里错了?

期望输出

我想要的输出应该是这样的:

['Warehouse Pencil', 'Production Pen']
Run Code Online (Sandbox Code Playgroud)

抓取第 1 个和第 2 个单词并将它们放入 1 个列表中。

python string for-loop list python-3.x

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

如何在 Spyder 4.0 中移动面板?

Spyder 4.0 刚刚发布,我无法根据我想要的布局移动面板。

我怎样才能做到这一点?

python ide spyder

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

在字典列表中按键保留重复项

我有一个字典列表,我想获得那些在一个键中具有相同值的字典:

my_list_of_dicts = [{
    'id': 3,
    'name': 'John'
  },{
    'id': 5,
    'name': 'Peter'
  },{
    'id': 2,
    'name': 'Peter'
  },{
    'id': 6,
    'name': 'Mariah'
  },{
    'id': 7,
    'name': 'John'
  },{
    'id': 1,
    'name': 'Louis'
  }
]
Run Code Online (Sandbox Code Playgroud)

我想保留那些具有相同“名称”的项目,因此,我想获得以下内容:

duplicates: [{
    'id': 3,
    'name': 'John'
  },{
    'id': 5,
    'name': 'Peter'
  },{
    'id': 2,
    'name': 'Peter'
  }, {
    'id': 7,
    'name': 'John'
  }
]
Run Code Online (Sandbox Code Playgroud)

我正在尝试(未成功):

duplicates = [item for item in my_list_of_dicts if len(my_list_of_dicts.get('name', None)) > 1]
Run Code Online (Sandbox Code Playgroud)

我清楚这段代码的问题,但不能做正确的句子

python dictionary list-comprehension list python-3.x

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

Pandas 中的条件词频计数

我有一个如下所示的数据框:

data = {'speaker':['Adam','Ben','Clair'],
        'speech': ['Thank you very much and good afternoon.',
                   'Let me clarify that because I want to make sure we have got everything right',
                   'By now you should have some good rest']}
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

我想计算语音列中的单词数,但只计算预定义列表中的单词。例如,列表是:

wordlist = ['much', 'good','right']
Run Code Online (Sandbox Code Playgroud)

我想生成一个新列,显示每行中这三个单词的频率。因此,我的预期输出是:

     speaker                   speech                               words
0   Adam          Thank you very much and good afternoon.             2
1   Ben        Let me clarify that because I want to make sur...      1
2   Clair        By now you should have received a copy …
Run Code Online (Sandbox Code Playgroud)

python string nlp dataframe pandas

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

这些集合操作是什么,为什么它们会给出不同的结果?

我在 Pluralsight 上看过这个测试题:

鉴于这些集合:

x = {'a', 'b', 'c', 'd'}
y = {'c', 'e', 'f'}
z = {'a', 'g', 'h', 'i'}
Run Code Online (Sandbox Code Playgroud)

的价值是x | y ^ z什么?

预期的答案是:

{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}
Run Code Online (Sandbox Code Playgroud)

组合集合(自动丢弃重复项),并将它们从最低到最高排序。

我的问题是:

  • 这个表达式叫什么?
  • 为什么我从 3 个不同的 Python 版本得到 3 个不同的结果?

在 Ubuntu 18.04 上的 Python 3.7.5 上的结果:

{'c', 'h', 'f', 'd', 'b', 'i', 'g', 'a', 'e'}
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 18.04 上的 Python 2.17.17rc1 上的结果:

set(['a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h']) …
Run Code Online (Sandbox Code Playgroud)

python set set-operations python-2.7 python-3.x

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