小编Soh*_*aib的帖子

指定输入参数argparse python的格式

我有一个需要一些命令行输入的python脚本,我使用argparse来解析它们.我发现文档有点令人困惑,无法找到检查输入参数格式的方法.通过此示例脚本解释了检查格式的含义:

parser.add_argument('-s', "--startdate", help="The Start Date - format YYYY-MM-DD ", required=True)
parser.add_argument('-e', "--enddate", help="The End Date format YYYY-MM-DD (Inclusive)", required=True)
parser.add_argument('-a', "--accountid", type=int, help='Account ID for the account for which data is required (Default: 570)')
parser.add_argument('-o', "--outputpath", help='Directory where output needs to be stored (Default: ' + os.path.dirname(os.path.abspath(__file__)))
Run Code Online (Sandbox Code Playgroud)

我需要检查选项,-s并且-e用户输入的格式是YYYY-MM-DD.在argparse中是否有一个选项,我不知道哪个完成了这个.

python python-2.7 argparse

95
推荐指数
3
解决办法
4万
查看次数

HashPartitioner如何运作?

我读了一下文档HashPartitioner.不幸的是,除了API调用之外没有解释太多.我假设HashPartitioner根据键的哈希对分布式集进行分区.例如,如果我的数据是这样的

(1,1), (1,2), (1,3), (2,1), (2,2), (2,3)
Run Code Online (Sandbox Code Playgroud)

因此,分区器会将其放入不同的分区,同一个键落在同一个分区中.但是我不明白构造函数参数的意义

new HashPartitoner(numPartitions) //What does numPartitions do?
Run Code Online (Sandbox Code Playgroud)

对于上述数据集,如果我这样做,结果会有何不同

new HashPartitoner(1)
new HashPartitoner(2)
new HashPartitoner(10)
Run Code Online (Sandbox Code Playgroud)

那么HashPartitioner工作怎么样呢?

scala partitioning apache-spark rdd

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

make os.listdir()列出完整路径

考虑以下代码:

files = sorted(os.listdir('dumps'), key=os.path.getctime)
Run Code Online (Sandbox Code Playgroud)

目标是根据创建时间对列出的文件进行排序.但是由于os.listdir只提供文件名而不是绝对路径,即os.path.getctime抛出异常

OSError: [Errno 2] No such file or directory: 'very_important_file.txt'

有这种情况的解决方法还是我需要编写自己的排序功能?

python os.path listdir

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

如果高度为h的建筑物使所有h-1建筑物向右倾斜,则会造成最大破坏

在最近的一次采访中,我遇到了以下问题.

在一个特定的城市,我们有一排不同高度的建筑物.高度为h的建筑物倒塌导致其右侧下一个h-1建筑物也会倒塌.建筑物的高度可以在1到5000之间.鉴于所有建筑物的高度(从左到右排列,即最左边的建筑物指数= 1,最右边的建筑物指数= N),我们需要找出建筑物会造成最大的破坏.

例如:

输入:建筑物数量:6

建筑物高度:2 1 3 3 1 6

答案应该在索引3处建立

我尝试的解决方案是使用蛮力技术,复杂度为O(N ^ 2).我所做的是列表中的每个建筑物,我发现它会破坏的建筑物数量.

可以为这个问题构建一个更好的解决方案吗?

algorithm

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

Python不考虑distutils.cfg

我已经尝试了所有给出的内容,并且教程都指向了使用mingw作为python中的编译器而不是visual c ++的相同方向.

我确实有视觉c ++和mingw两者.当我想使用pip安装时问题就开始了.它总是给Unable to find vcvarsall.bat

因此,根据建议,我在distutils.cfg以下路径下创建了一个文件,c:/python27/Lib/distutils/并添加了以下两行:

[build]
compiler=mingw32
Run Code Online (Sandbox Code Playgroud)

但是,此文件无任何效果.使用pip时仍然存在相同的错误.我正在尝试按目前的方式安装numpy,虽然错误也来得早.

python distutils pip

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

使用Bhattacharyya距离进行特征选择

我有一组使用图像处理提取的240个特征.目标是在训练后将测试用例分为7个不同的类.对于每个类,有大约60个观察值(即,每个类有大约60个特征向量,每个向量具有240个组件).

许多研究论文和书籍利用顺序前向搜索或顺序后向搜索从特征向量中选择最佳特征.下图给出了顺序前向搜索算法. 这是SFS算法的快照

任何这样的算法都使用一些标准来区分特征.一种常见的方法是使用Bhattacharyya距离作为标准.Bhattacharyya距离是分布之间的分歧类型度量.在一些研究和研究中,我发现给定A类的矩阵M1,该类包含该类的所有60个特征向量,使得它具有n = 60行和m = 240列(因为总共有240个特征)并且类BI的类似矩阵M2可以找出它们之间的Bhattacharyya距离并找到它们的相互依赖性.

我的问题是如何整合这两者.如何将Bhattacharyya距离作为选择算法中最佳特征的标准,如上所述.

algorithm machine-learning data-mining feature-selection

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

A和B之间的数字计数(包括),其数字总和等于S.

问题是找到A和B之间的数字计数(包括),其数字总和等于S.

同时在A和B之间打印最小的这个数字(含).

输入:

单线由A,B,S组成.

输出:

两行.

在第一行中,A和B之间的整数数,其总和等于S.

在第二行中,A和B之间的最小数字.

约束:

1 <= A <= B <10 ^ 15

1 <= S <= 135

来源:黑客地球

我的解决方案仅适用于30个输入.什么是最好的解决方案呢?

我现在使用的算法现在计算最小数字的总和,然后在十位数的每次改变时再次计算总和.以下是Python中的解决方案:

def sum(n):
    if (n<10):return n
    return n%10 + sum(n/10)

stri = raw_input()

min = 99999
stri = stri.split(" ")

a= long  (stri[0])
b= long  (stri[1])
s= long  (stri[2])

count= 0
su = sum(a)

while a<=b :        
if (a % 10 == 0 ):
    su = sum(a)
    print a 
if ( s == su):
    count+=1 …
Run Code Online (Sandbox Code Playgroud)

algorithm math

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

平滑曲线同时保持其下面的区域不变的算法

考虑由点定义的离散曲线 (x1,y1), (x2,y2), (x3,y3), ... ,(xn,yn)

定义一个常量SUM = y1+y2+y3+...+yn.假设我们改变某些k个y点(增加或减少)的值,使得这些变化点的总和小于或等于常数SUM.

在给定以下两个条件的情况下,调整其他y点的最佳方式是什么:

  1. y点的总和(y1'+ y2'+ ... + yn')应保持不变,即SUM.
  2. 曲线应保留尽可能多的原始形状.

一个简单的解决方案是定义一些delta如下:

delta = (ym1' + ym2' + ym3' + ... + ymk') - (ym1 + ym2 + ym3 + ... + ymk')
Run Code Online (Sandbox Code Playgroud)

并平均分配delta其余的点数.下面ym1'是修改后修改点ym1的值,是修改前修改点的值,将delta作为修改的总差异.

然而,这不能确保完全平滑的曲线,因为变化点附近的区域看起来很粗糙.这个问题是否存在更好的解决方案/算法?

algorithm math curve-fitting

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

Redshift 中的组连接

我有一张这样的表:

| Col1       | Col2        |
|:-----------|------------:|
| 1          |        a;b; |    
| 1          |        b;c; |
| 2          |        c;d; |
| 2          |        d;e; |
Run Code Online (Sandbox Code Playgroud)

我希望结果是这样的。

| Col1       | Col2        |
|:-----------|------------:|
| 1          |       a;b;c;|
| 2          |       c;d;e;|
Run Code Online (Sandbox Code Playgroud)

有没有办法编写一个 set 函数,将列中的唯一值添加到数组中,然后显示它们。我正在使用 Redshift 数据库,它主要使用 postgresql,但有以下区别: 不支持的 PostgreSQL 函数

sql aggregate-functions amazon-redshift

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

2个玩家在棋盘上遍历随机网格的最佳解决方案

考虑一个无限的2D板.我们在棋盘上的P1和P2点有两名球员.他们需要遍历板G1,G2,G3 ...... Gn上的一系列方框.

起初只有G1是已知的.G2到Gn的坐标只有在遍历它之前的框之后才知道.玩家可以在单位时间内在棋盘上的8个可能方向中的一个方向上一次移动一个.我们需要找到使用这两个玩家遍历所有必需框的最短时间.

显而易见的解决方案是一种贪婪的方法,其中靠近需要被遍历的盒子的玩家朝向它移动.然后我们再次为下一个G计算更近的玩家.我觉得这个问题有一个更好的解决方案,我现在无法理解.是否存在更好的解决方案?

algorithm

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