小编Dr.*_*rew的帖子

python tilde unary operator as negation numpy bool array

应该是一个简单的问题,但我无法在任何地方找到答案.~python中的运算符被记录为按位反转运算符.精细.我注意到看似精神分裂的行为,即:

~True -> -2
~1 -> -2
~False -> -1
~0 -> -1
~numpy.array([True,False],dtype=int) -> array([-2,-1])
~numpy.array([True,False],dtype=bool) -> array([False,True])
Run Code Online (Sandbox Code Playgroud)

在前4个示例中,我可以看到python正在实现(如文档所述)~x = -(x+1),输入被视为int,即使它是布尔值.因此,对于标量布尔值,~不被视为逻辑否定.并非在使用int类型的布尔值定义的numpy数组上的行为相同.

~那么为什么在布尔数组上作为逻辑否定运算符工作(另请注意:~numpy.isfinite(numpy.inf) -> True?)?

我必须not()在标量上使用它是非常烦人的,但是not()无法否定数组.然后对于一个数组,我必须使用~,但~不会否定一个标量......

python boolean numpy multidimensional-array

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

奇异矩阵的高效和pythonic检查

在这里研究一些矩阵代数.有时我需要反转可能是单数或病态的矩阵.我知道简单地执行此操作是pythonic:

try:
    i = linalg.inv(x)
except LinAlgErr as err:
    #handle it
Run Code Online (Sandbox Code Playgroud)

但我不确定它的效率如何.这会不会更好?

if linalg.cond(x) < 1/sys.float_info.epsilon:
    i = linalg.inv(x)
else:
    #handle it
Run Code Online (Sandbox Code Playgroud)

numpy.linalg只是简单地执行我禁止的测试吗?

python numpy linear-algebra

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

加权移动平均线与numpy.convolve

我正在写一个移动平均函数,它使用numpy中的convolve函数,它应该等于a(加权移动平均值).当我的权重都相等时(如简单的算术平均值),它可以正常工作:

data = numpy.arange(1,11)
numdays = 5
w = [1.0/numdays]*numdays
numpy.convolve(data,w,'valid')
Run Code Online (Sandbox Code Playgroud)

array([ 3.,  4.,  5.,  6.,  7.,  8.])
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用加权平均值时

w = numpy.cumsum(numpy.ones(numdays,dtype=float),axis=0); w = w/numpy.sum(w)
Run Code Online (Sandbox Code Playgroud)

而不是(对于相同的数据)3.667,4.667,5.667,6.667,...我希望,我得到

array([ 2.33333333,  3.33333333,  4.33333333,  5.33333333,  6.33333333,
        7.33333333])
Run Code Online (Sandbox Code Playgroud)

如果我删除'有效'标志,我甚至看不到正确的值.我真的想使用卷积为WMA和MA,因为它使代码更清晰(相同的代码,不同的权重),否则我认为我将不得不遍历所有数据并采取切片.

关于这种行为的任何想法?

python math numpy

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

Scikit-学习教程文档位置

我在Ubuntu 14.04上安装了scikit-learn 0.16.1并正在完成本教程.SKL安装了所有默认配置.教程说明

您可以在scikit-learn文件夹中找到本教程的源代码:scikit-learn/doc/tutorial/text_analytics /

我用过find我的整个驱动器,没有"教程"文件夹.不在任何地方 有人知道这些文件的安装位置吗?

python ubuntu scikit-learn

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

Power BI 中的 Python Plotly

我正在尝试为一些数据分析构建一个 Power BI 工具,我需要的图之一是反分位数图(x 轴上的分位数,y 轴上的值)。Power BI 没有这个,我在应用市场上找不到,所以我使用 Python 来编写我需要的东西。

静态情节pandas.DataFrame.plot()工作正常,但缺乏交互式情节的魅力。我已经对我需要使用的情节进行了编码,并使用 运行它py.iplot(),但是 Power BI 告诉我

没有创建图像。Python 代码不会导致创建任何视觉效果。确保您的 Python 脚本生成 Python 默认设备的绘图

没有错误,我通过使用 运行绘图确认代码正常py.plot(),并在浏览器中查看结果。我的代码是:

import plotly.plotly as py
import plotly.graph_objs as go

# get the quantiles and reshape
qs = dataset.groupby(by='HYDROCARBON_TYPE').Q42018_AbsDevi.quantile(q=[0.01,0.05,0.1,0.2,0.25,0.5,0.75,0.8,0.9,0.95,0.99]).unstack().transpose()
# plot it
traces = []
for col in qs.columns:
    traces.append(go.Scatter(x=qs.index, y=qs[col], name=col))
py.plot(traces,filename='basic-line')
Run Code Online (Sandbox Code Playgroud)

为什么这行不通?

python plotly powerbi

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

Github 认为合并后分支不同

我已经用这个 Github 问题把我的头撞在墙上,足以最终来到这里寻求帮助。我的repo有两个感兴趣的分支:master,这是当前实时发布的分支,以及alternate-testing,这正是它听起来的样子。我们的开发流程具有定期分支(和分叉)的功能分支alternate-testing,然后合并回alternate-testing. 最后,alternate-testing定期合并到master. 请注意,测试分支是看门人master- 除了master通过之外什么都不会进入alternate-testing

完全清楚,这不是这样的情况:

1 -- 2 -- 3 -- 4 -- 5 -- 6 -- 7 -- 8 [master]
       \                      /
        A -- B -- C -- D -- E [alternate-testing]
Run Code Online (Sandbox Code Playgroud)

就像在这个问题中一样,因为 master本身永远不会改变。更相关的图表是:

1 -- 2 ---------------------- * -- 8 [master]
       \                      /
        A -- B -- C -- D -- E …
Run Code Online (Sandbox Code Playgroud)

git version-control github merge-conflict-resolution git-merge-conflict

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

大多数Pythonic条件计数器

我有一个列表,需要创建条件满足次数的计数.这样做是否更加pythonic:

cnt = sum([1 for s in a_list if some_condition])
Run Code Online (Sandbox Code Playgroud)

或者这是更pythonic:

cnt = 0
  for s in a_list:
    if (some_condition):
      cnt += 1
Run Code Online (Sandbox Code Playgroud)

python

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

Python十进制到二进制数组

我的问题与这个stackoverflow帖子有关:在这里输入链接描述,其中inspectorG4dget提供了代码

def decToBin(n):
    if n==0: return ''
    else:
        return decToBin(n/2) + str(n%2)
Run Code Online (Sandbox Code Playgroud)

Alex Martelli观察到的递归是不必要的,因为可以使用明显的bin(x)[2:].如果用户需要二进制表示作为字符串,这很好.但是,我需要二进制表示作为列表或numpy ndarray.我可以看到,我的选择是a)改编这个代码或b)像这样的东西string.split(','.join(bin(10)[2:]),',').我知道字符串操作往往很昂贵,但递归也很昂贵.

鉴于我需要将整数转换为array_like的位,哪个选项(a或b)可能更有效?还有另一种更简单,更好的方法吗?

python binary multidimensional-array

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

加入字符串列表列表

我有一个列表列表,其中每个元素都是一个字符:

 ngrams = [['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c'],
 ['a', 'a', 'a', 'b', 'b', 'b', 'c', 'c', 'c']]
Run Code Online (Sandbox Code Playgroud)

由此,我想生成一个包含内容的新单个列表['aa','ab','ac','ba','bb','bc','ca','cb','cc'].每个列表的各个元素彼此相加,但是与列表的顺序相反.我想出了这个(在哪里np = 2):

for cnt in range(np-2,-1,-1):
  thisngrams[-1] = [a+b for (a,b) in zip(thisngrams[-1],thisngrams[cnt])]          
Run Code Online (Sandbox Code Playgroud)

我的解决方案需要处理np高于2.我希望这是O(np),这也不错.有人可以建议一个更有效和pythonic的方式来做我想要的(或这是一个很好的pythonic方法)?

python list

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

Ubuntu完全删除不是Anaconda的python

我刚刚花了两天时间尝试从源代码构建Tensorflow,当我意识到sudo pip(即使使用-H标志)没有找到我的anaconda pip,而是找到一个用apt安装的pip 时,我终于成功了.然后,运行,sudo -H ~/anaconda3/bin/pip ...解决了我的问题.

为了再次避免这种问题(我在使用"错误"python的过程中遇到了几个问题),我可以从我的系统中完全删除python,只保留Anaconda吗?这是可取的吗?

python anaconda ubuntu-16.04

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