我试图执行以下操作,但使用numpy数组:
x = [(0.1, 1.), (0.1, 2.), (0.1, 3.), (0.1, 4.), (0.1, 5.)]
normal_result = zip(*x)
Run Code Online (Sandbox Code Playgroud)
这应该给出一个结果:
normal_result = [(0.1, 0.1, 0.1, 0.1, 0.1), (1., 2., 3., 4., 5.)]
Run Code Online (Sandbox Code Playgroud)
但是如果输入向量是一个numpy数组:
y = np.array(x)
numpy_result = zip(*y)
print type(numpy_result)
Run Code Online (Sandbox Code Playgroud)
它(预期)返回:
<type 'list'>
Run Code Online (Sandbox Code Playgroud)
问题是我需要在此之后将结果转换回numpy数组.
我想知道的是,如果有一个有效的numpy函数可以避免这些来回转换?
我想更有效地做以下事情:
def repeatChar(char:Char, n: Int) = List.fill(n)(char).mkString
def repeatString(char:String, n: Int) = List.fill(n)(char).mkString
repeatChar('a',3) // res0: String = aaa
repeatString("abc",3) // res0: String = abcabcabc
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个简单的函数,它可以根据相应的(也是指定的)概率生成指定随机值的数组.我只需要它来生成浮点值,但我不明白为什么它不能生成任何标量.我可以想到从现有函数构建这个函数的许多方法,但我想我可能只是错过了一个明显的SciPy或NumPy函数.
例如:
>>> values = [1.1, 2.2, 3.3]
>>> probabilities = [0.2, 0.5, 0.3]
>>> print some_function(values, probabilities, size=10)
(2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2)
Run Code Online (Sandbox Code Playgroud)
注意:我发现了scipy.stats.rv_discrete,但我不明白它是如何工作的.具体来说,我不明白这(下面)的含义是什么,也不应该做什么:
numargs = generic.numargs
[ <shape(s)> ] = ['Replace with resonable value', ]*numargs
Run Code Online (Sandbox Code Playgroud)
如果rv_discrete是我应该使用的,你能否提供一个简单的例子和对上述"形状"陈述的解释?
有没有办法在单个"CREATE TABLE AS"语句中设置PRIMARY KEY?
示例 - 我希望将以下内容写入1个语句而不是2:
CREATE TABLE "new_table_name" AS SELECT a.uniquekey, a.some_value + b.some_value FROM "table_a" AS a, "table_b" AS b WHERE a.uniquekey=b.uniquekey;
ALTER TABLE "new_table_name" ADD PRIMARY KEY (uniquekey);
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点(假设有超过2个表,例如10)?
我使用cPickle来保存每次运行程序的数据集.由于我有时需要在不运行代码的情况下查看数据的轮廓,因此我想通过双击文件来快速查看内容.我试图避免每次都加载一个终端并将python指向一个文件,只是为了运行一些print
脚本.
我找了Notepad ++插件但找不到任何东西.
有一些简单的方法来做到这一点?有没有人有什么建议?
注意:我运行Windows 7.
我想知道在哪些情况下哪些数据结构最适合使用"包含"或"存在"检查.
我问,因为我来自Python背景,并习惯于使用if x in something:
表达式.例如,哪些表达式评估最快:
val m = Map(1 -> 1, 2 -> 2, 3 -> 3, 4 -> 4)
//> m : scala.collection.immutable.Map[Int,Int] = Map(1 -> 1, 2 -> 2, 3 -> 3, 4
//| -> 4)
val l = List(1,2,3,4) //> l : List[Int] = List(1, 2, 3, 4)
val v = Vector(1,2,3,4) //> v : scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4)
m.exists(_._1 == 3) //> res0: Boolean = true
m.contains(3) //> res1: Boolean = true …
Run Code Online (Sandbox Code Playgroud) 我想直接将文件下载到内存中requests
,以便将其直接传递给PyPDF2
阅读器,避免将其写入磁盘,但我无法弄清楚如何将其作为传递给它file object
.这是我尝试过的:
import requests as req
from PyPDF2 import PdfFileReader
r_file = req.get('http://www.location.come/somefile.pdf')
rs_file = req.get('http://www.location.come/somefile.pdf', stream=True)
with open('/location/somefile.pdf', 'wb') as f:
for chunk in r_file.iter_content():
f.write(chunk)
local_file = open('/location/somefile.pdf', 'rb')
#Works:
pdf = PdfFileReader(local_file)
#As expected, these don't work:
pdf = PdfFileReader(rs_file)
pdf = PdfFileReader(r_file)
pdf = PdfFileReader(rs_file.content)
pdf = PdfFileReader(r_file.content)
pdf = PdfFileReader(rs_file.raw)
pdf = PdfFileReader(r_file.raw)
Run Code Online (Sandbox Code Playgroud) 在Python中,有没有办法在没有"x in"变量的情况下编写这个列表理解(因为它完全没用)?同样适用于生成器表达式.我怀疑这种情况经常发生,但我偶然发现了几次,很想知道.
这是一个例子:
week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]
Run Code Online (Sandbox Code Playgroud)
(也许,是否有更优雅的方式来构建它?)
这是我运行的代码:
import timeit
print timeit.Timer('''a = sorted(x)''', '''x = [(2, 'bla'), (4, 'boo'), (3, 4), (1, 2) , (0, 1), (4, 3), (2, 1) , (0, 0)]''').timeit(number = 1000)
print timeit.Timer('''a=x[:];a.sort()''', '''x = [(2, 'bla'), (4, 'boo'), (3, 4), (1, 2) , (0, 1), (4, 3), (2, 1) , (0, 0)]''').timeit(number = 1000)
Run Code Online (Sandbox Code Playgroud)
以下是结果:
0.00259663215837
0.00207390190177
Run Code Online (Sandbox Code Playgroud)
我想知道为什么使用.sort()始终比sorted()更快,即使两者都是复制列表?
注意:我在带有Win7的2.53Ghz i5上运行Python 2.7
我试图用正则表达式执行以下操作:
import re
x = re.compile('[^(going)|^(you)]') # words to replace
s = 'I am going home now, thank you.' # string to modify
print re.sub(x, '_', s)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
'_____going__o___no______n__you_'
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
'_____going_________________you_'
Run Code Online (Sandbox Code Playgroud)
由于^
只能在括号内使用[]
,这个结果是有道理的,但我不知道怎么回事.
我甚至试过'([^g][^o][^i][^n][^g])|([^y][^o][^u])'
但它产量'_g_h___y_'
.
python ×7
numpy ×2
performance ×2
scala ×2
arrays ×1
char ×1
create-table ×1
download ×1
file ×1
optimization ×1
pickle ×1
postgresql ×1
primary-key ×1
pypdf ×1
random ×1
regex ×1
scipy ×1
sorting ×1
string ×1