小编mir*_*ulo的帖子

获取Python中列表的最小N个元素的索引

我想获得列表中最小N个元素的索引.如果我可以在另一个列表上获得该输出,那将是很好的.

例如:

[1, 1, 10, 5, 3, 5]
output = [0, 1]

[10, 5, 12, 5, 0, 10]
output = [4]

[9, 2, 8, 2, 3, 4, 2]
output = [1, 3, 6]

[10, 10, 10, 10, 10, 10]
output = [0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我知道.index返回列表中最小值的第一个索引,但我不知道如何在多次出现时返回最小值的所有索引.

python arrays list

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

python需要包__init__.py的原因是什么?

我知道python需要该__ init __.py文件才能将目录识别为python包,这样我们就可以将子模块导入到我们的程序中.我可以看到类的相似性以及如何使用init来执行必要的代码.

但是,在python文档中,这一行让我困惑,

这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块.

如下所示https://docs.python.org/2/tutorial/modules.html#packages

有人可以澄清一下吗?

python module init package

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

查找行简化矩阵python的解决方案

假设我的简化矩阵形式如下:

   x    y    z    =
[[2.0, 4.0, 4.0, 4.0], 
 [0.0, 2.0, 1.0, 2.0], 
 [0.0, 0.0, 1.0, 1.0], 
 [0.0, 0.0, 0.0, 0.0]]
Run Code Online (Sandbox Code Playgroud)

我想要一个包含解决方案的数组。

在这种情况下,我想返回

  z    y     x
[1.0, 0.5, -1.0]
Run Code Online (Sandbox Code Playgroud)

我们可以假设它是没有自由变量的理想三角形。

我一直在寻找scipy.linalg.solve解决方案,但它需要表格,Ax=B而且我不确定如何转换为该表格。

python numpy matrix linear-algebra scipy

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

如何在pandas df中设置新索引并删除默认索引

我已在图片中附加了数据框。在 df 中,subVoyageID 是默认索引,我试图删除 subvoyageID 旁边的那个空白行,以便所有列名都在同一行中对齐,但我无法做到。

由于 subVoyageID 是默认索引,我将数据复制到新列“svid”并将索引重置为新列“svid”,(请参阅下面的代码和图片)

    df["SVID"] = df.index
    df.set_index('SVID')
    df
Run Code Online (Sandbox Code Playgroud)

原始文件

原始文件

结果 df

新DF

现在我如何摆脱作为默认索引的第一列,因为 df.info() 显示了从 x-max 到 SVID 的 5 列;或者有没有其他方法可以将所有列标签对齐在一行中。谢谢你的帮助。

python dataframe pandas

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

Python的时间戳出错了

我这样做:

timestamp=long('1455873250789')
print(timestamp)
d=datetime.datetime(timestamp)
Run Code Online (Sandbox Code Playgroud)

我明白了:

1455873250789
Traceback (most recent call last):
  File ".../pycharm-5.0.4/helpers/pydev/pydevd.py", line 2411, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File ".../pycharm-5.0.4/helpers/pydev/pydevd.py", line 1802, in run
launch(file, globals, locals)  # execute the script
  File "....py", line ..., in <module>
d=datetime.datetime(timestamp)
OverflowError: signed integer is greater than maximum
Run Code Online (Sandbox Code Playgroud)

为什么?

python

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

如何在Python数组中迭代一些元素?

例如,我有一个像这样的对象列表:

[[{1},{2},{3}],[{4},{5}],[{6},{7},{8}]]
Run Code Online (Sandbox Code Playgroud)

我需要遍历它们以获得每个迭代对象,例如:

 1,4,6
 1,4,7
 1,4,8
 1,5,6
 1,5,7
 1,5,8
 2,4,6
 2,4,7
 2,4,8
 2,5,6
 2,5,7
 2,5,8
Run Code Online (Sandbox Code Playgroud)

基本上每个结果都像输入列表的子数组.

python python-2.7

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

从列表中查找有序子序列(不一定是连续的)

我遇到了问题.我有一个列表,例如[A,B,C,D,E].列表的大小可能会有所不同.我必须检查是否[A,C,E]在主列表中出现了例如子序列.子序列的大小也可以变化.

这里的问题是这里的子序列不需要是连续的.只是发生的顺序很重要.

一些例子:

seq = [A,B,C,D,E]

subseq = [A,C,E]
>>>sub-sequence present in sequence

subseq = [B,D,E]
>>> sub-sequence present in sequence

subseq = [A,E]
>>> sub-sequence present in sequence

subseq = [C,B]
>>> sub-sequence not present in sequence

subseq = [B,A,E]
>>> sub-sequence not present in sequence
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

pyspark:数据帧写入镶木地板

通过 pyspark 脚本运行加载镶木地板表时出现以下错误。通过 pyspark shell 测试时没有问题

交互模式工作正常:

 df_writer = pyspark.sql.DataFrameWriter(df)
 df_writer.saveAsTable('test', format='parquet', mode='overwrite',path='xyz/test_table.parquet')
Run Code Online (Sandbox Code Playgroud)

脚本模式抛出错误:

/opt/mapr/spark/spark-2.0.1//bin/spark-submit --jars /opt/mapr/spark/spark-2.0.1/-2.0.1/jars/commons-csv-1.2.jar /home/mapr/scripts/pyspark_load.py
17/02/17 14:57:06 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Traceback (most recent call last):
  File "/home/mapr/scripts/2_pyspark_load.py", line 23, in <module>
    df_writer = pyspark.sql.DataFrameWriter(df)
NameError: name 'pyspark' is not defined
Run Code Online (Sandbox Code Playgroud)

python apache-spark-sql pyspark

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

Xtensor类型与NumPy的性能对比

在使用cookiecutter设置并使用xsimd启用S​​IMD内部函数之后,我尝试了xtensor-python,并开始编写一个非常简单的sum函数。

inline double sum_pytensor(xt::pytensor<double, 1> &m)
{
  return xt::sum(m)();
}
inline double sum_pyarray(xt::pyarray<double> &m)
{
  return xt::sum(m)();
}
Run Code Online (Sandbox Code Playgroud)

用于setup.py构建我的Python模块,然后与比较,测试了从np.random.randn不同大小构造的NumPy数组上的求和函数np.sum

import timeit

def time_each(func_names, sizes):
    setup = f'''
import numpy; import xtensor_basics
arr = numpy.random.randn({sizes})
    '''
    tim = lambda func: min(timeit.Timer(f'{func}(arr)',
                                        setup=setup).repeat(7, 100))
    return [tim(func) for func in func_names]

from functools import partial

sizes = [10 ** i for i in range(9)]
funcs = ['numpy.sum',
         'xtensor_basics.sum_pyarray',
         'xtensor_basics.sum_pytensor']
sum_timer = …
Run Code Online (Sandbox Code Playgroud)

c++ python performance numpy xtensor

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

比较Python上的两个列表

我需要帮助比较两个列表并返回它们不匹配的索引.

a = [0, 1, 1, 0, 0, 0, 1, 0, 1]
b = [0, 1, 1, 0, 1, 0, 1, 0, 0]
Run Code Online (Sandbox Code Playgroud)

索引4和8不匹配,我需要将其作为列表返回 [4,8]

我尝试了一些方法,但他们没有为我工作.

python list

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