小编Tim*_*imY的帖子

在Python的numpy中,"zip()"相当于什么?

我试图执行以下操作,但使用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函数可以避免这些来回转换?

python arrays numpy

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

在Scala中有效地重复一次字符/字符串n次

我想更有效地做以下事情:

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)

string scala concatenation string-concatenation char

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

使用SciPy或NumPy生成具有指定权重的离散随机变量

我正在寻找一个简单的函数,它可以根据相应的(也是指定的)概率生成指定随机值的数组.我只需要它来生成浮点值,但我不明白为什么它不能生成任何标量.我可以想到从现有函数构建这个函数的许多方法,但我想我可能只是错过了一个明显的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是我应该使用的,你能否提供一个简单的例子和​​对上述"形状"陈述的解释?

python random numpy scipy

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

在一个语句中使用PRIMARY KEY创建表AS(PostgreSQL)

有没有办法在单个"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)?

postgresql primary-key create-table

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

有没有办法在不加载Windows的Python的情况下查看cPickle或Pickle文件内容?

我使用cPickle来保存每次运行程序的数据集.由于我有时需要在不运行代码的情况下查看数据的轮廓,因此我想通过双击文件来快速查看内容.我试图避免每次都加载一个终端并将python指向一个文件,只是为了运行一些print脚本.

我找了Notepad ++插件但找不到任何东西.

有一些简单的方法来做到这一点?有没有人有什么建议?

注意:我运行Windows 7.

python pickle

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

SCALA:使用".contains()"或".exists()"时哪种情况下哪种数据结构是最佳的?

我想知道在哪些情况下哪些数据结构最适合使用"包含"或"存在"检查.

我问,因为我来自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)

performance scala data-structures scala-collections

19
推荐指数
1
解决办法
3600
查看次数

请求:从url返回文件对象(与open('','rb')一样)

我想直接将文件下载到内存中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 file download pypdf python-requests

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

在Python中创建没有变量"x in"(例如for range)的生成器表达式或列表推导

在Python中,有没有办法在没有"x in"变量的情况下编写这个列表理解(因为它完全没用)?同样适用于生成器表达式.我怀疑这种情况经常发生,但我偶然发现了几次,很想知道.

这是一个例子:

week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]
Run Code Online (Sandbox Code Playgroud)

(也许,是否有更优雅的方式来构建它?)

python list-comprehension generator-expression

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

为什么Python的"sorted()"慢于"copy,then .sort()"

这是我运行的代码:

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

python sorting optimization performance

7
推荐指数
1
解决办法
3175
查看次数

Python正则表达式替换除特定单词之外的所有内容

我试图用正则表达式执行以下操作:

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 regex

7
推荐指数
1
解决办法
2528
查看次数