reverse
Python的str
对象没有内置函数.实现此方法的最佳方法是什么?
如果提供非常简洁的答案,请详细说明其效率.例如,是否将str
对象转换为其他对象等.
在跑步的时候
./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中卸载库?"干净"会做这项工作,还是涉及其他步骤?
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]
表示最后一个元素.你能解释一下吗?
将浮点数与整数进行比较时,某些值对的评估时间比其他类似值的值要长得多.
例如:
>>> 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似乎更多地使用一些值而不是其他值.
我想切片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制作所需数组的副本,因此当处理大型数组时,这可能会成为一个问题.为什么这样/这个机制如何运作?
在Postgres中,您可以指定一个IN子句,如下所示:
SELECT * FROM user WHERE id IN (1000, 1001, 1002)
Run Code Online (Sandbox Code Playgroud)
有谁知道你可以传入IN的最大参数数量是多少?
我有一个包含四列的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) 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) 假设我有一个带有NaN
s 的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 ×7
dataframe ×3
pandas ×3
numpy ×2
compression ×1
cpython ×1
dictionary ×1
linux ×1
makefile ×1
nan ×1
performance ×1
postgresql ×1
python-3.x ×1
slice ×1
stdin ×1
string ×1
uninstall ×1
unique ×1