小编Ale*_*ley的帖子

在Python中反转一个字符串

reversePython的str对象没有内置函数.实现此方法的最佳方法是什么?

如果提供非常简洁的答案,请详细说明其效率.例如,是否将str对象转换为其他对象等.

python string

1288
推荐指数
9
解决办法
123万
查看次数

与'make install'相反的是什么,即如何在Linux中卸载库?

在跑步的时候

./configure --prefix=/mingw 
Run Code Online (Sandbox Code Playgroud)

在我以前运行的库的MinGW/MSYS系统上

'./configure --prefix=/mingw && make && make install' 
Run Code Online (Sandbox Code Playgroud)

我发现了这条消息:

警告:已安装Vamp插件SDK的一个版本.如果您安装新版本而不先删除旧版本,则会出现忧虑和悲伤.(继续)

这让我很担心.与'make install'相反的是什么,即如何在Linux中卸载库?"干净"会做这项工作,还是涉及其他步骤?

makefile uninstall

377
推荐指数
9
解决办法
29万
查看次数

What does -1 mean in numpy reshape?

A numpy matrix can be reshaped into a vector using reshape function with parameter -1. But I don't know what -1 means here.

For example:

a = numpy.matrix([[1, 2, 3, 4], [5, 6, 7, 8]])
b = numpy.reshape(a, -1)
Run Code Online (Sandbox Code Playgroud)

The result of b is: matrix([[1, 2, 3, 4, 5, 6, 7, 8]])

有谁知道-1在这里意味着什么?并且似乎python赋予-1几个含义,例如:array[-1]表示最后一个元素.你能解释一下吗?

python numpy

354
推荐指数
9
解决办法
22万
查看次数

为什么有些浮点数<整数比较慢四倍?

将浮点数与整数进行比较时,某些值对的评估时间比其他类似值的值要长得多.

例如:

>>> import timeit
>>> timeit.timeit("562949953420000.7 < 562949953421000") # run 1 million times
0.5387085462592742
Run Code Online (Sandbox Code Playgroud)

但是如果浮点数或整数变小或变大一定量,则比较运行得更快:

>>> timeit.timeit("562949953420000.7 < 562949953422000") # integer increased by 1000
0.1481498428446173
>>> timeit.timeit("562949953423001.8 < 562949953421000") # float increased by 3001.1
0.1459577925548956
Run Code Online (Sandbox Code Playgroud)

更改比较运算符(例如,使用==>替代)不会以任何明显的方式影响时间.

这并不仅仅与幅度有关,因为选择更大或更小的值可以导致更快的比较,因此我怀疑它是由于位排列的一些不幸的方式.

显然,对于大多数用例来说,比较这些值的速度要快得多.我只是好奇为什么Python似乎更多地使用一些值而不是其他值.

python floating-point performance cpython python-internals

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

切片NumPy 2d数组,或者如何从nxn数组(n> m)中提取mxm子矩阵?

我想切片NumPy nxn数组.我想提取该数组的m行和列的任意选择(即行数/列数没有任何模式),使其成为一个新的mxm数组.对于这个例子,让我们说数组是4x4,我想从中提取一个2x2数组.

这是我们的数组:

from numpy import *
x = range(16)
x = reshape(x,(4,4))

print x
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [12 13 14 15]]
Run Code Online (Sandbox Code Playgroud)

要删除的行和列是相同的.最简单的情况是当我想要提取一个位于开头或结尾的2x2子矩阵时,即:

In [33]: x[0:2,0:2]
Out[33]: 
array([[0, 1],
       [4, 5]])

In [34]: x[2:,2:]
Out[34]: 
array([[10, 11],
       [14, 15]])
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要删除另一行/列的混合物怎么办?如果我需要删除第一行和第三行/行,从而提取子矩阵[[5,7],[13,15]]怎么办?行/行可以有任何组合.我读到某个地方,我只需要使用行和列的索引数组/列表索引我的数组,但这似乎不起作用:

In [35]: x[[1,3],[1,3]]
Out[35]: array([ 5, 15])
Run Code Online (Sandbox Code Playgroud)

我发现了一种方法,即:

    In [61]: x[[1,3]][:,[1,3]]
Out[61]: 
array([[ 5,  7],
       [13, 15]])
Run Code Online (Sandbox Code Playgroud)

第一个问题是它几乎不可读,尽管我可以忍受它.如果有人有更好的解决方案,我当然希望听到它.

另一件事是我在一个论坛上读到,使用数组索引数组强制NumPy制作所需数组的副本,因此当处理大型数组时,这可能会成为一个问题.为什么这样/这个机制如何运作?

python numpy slice

165
推荐指数
5
解决办法
19万
查看次数

PostgreSQL - "IN"子句中的最大参数数量?

在Postgres中,您可以指定一个IN子句,如下所示:

SELECT * FROM user WHERE id IN (1000, 1001, 1002)
Run Code Online (Sandbox Code Playgroud)

有谁知道你可以传入IN的最大参数数量是多少?

postgresql

136
推荐指数
7
解决办法
8万
查看次数

将Pandas DataFrame转换为字典

我有一个包含四列的DataFrame.我想将此DataFrame转换为python字典.我想要第一列keys的元素和同一行中其他列的元素values.

数据帧:

    ID   A   B   C
0   p    1   3   2
1   q    4   3   2
2   r    4   0   9  
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

字典:

{'p': [1,3,2], 'q': [4,3,2], 'r': [4,0,9]}
Run Code Online (Sandbox Code Playgroud)

python dictionary dataframe pandas

126
推荐指数
6
解决办法
17万
查看次数

从STDIN读取数据时压缩文件

是否可以在从Linux上的stdin读取时压缩(创建压缩归档)数据?

linux compression stdin

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

pandas唯一值多列

df = pd.DataFrame({'Col1': ['Bob', 'Joe', 'Bill', 'Mary', 'Joe'],
                   'Col2': ['Joe', 'Steve', 'Bob', 'Bob', 'Steve'],
                   'Col3': np.random.random(5)})
Run Code Online (Sandbox Code Playgroud)

返回'Col1'和'Col2'的唯一值的最佳方法是什么?

期望的输出是

'Bob', 'Joe', 'Bill', 'Mary', 'Steve'
Run Code Online (Sandbox Code Playgroud)

python unique dataframe pandas

110
推荐指数
4
解决办法
16万
查看次数

如何用pandas DataFrame中的先前值替换NaN?

假设我有一个带有NaNs 的DataFrame :

>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
>>> df
    0   1   2
0   1   2   3
1   4 NaN NaN
2 NaN NaN   9
Run Code Online (Sandbox Code Playgroud)

我需要做的是用它上面的同一列中NaN的第一个非NaN值替换每个值.假设第一行永远不会包含a NaN.因此,对于前面的示例,结果将是

   0  1  2
0  1  2  3
1  4  2  3
2  4  2  9
Run Code Online (Sandbox Code Playgroud)

我可以逐个循环遍历整个DataFrame,逐个元素并直接设置值,但是有一种简单(最佳无循环)的方法来实现这一目标吗?

python nan dataframe python-3.x pandas

103
推荐指数
8
解决办法
7万
查看次数