小编Let*_*zee的帖子

我可以在map函数中使用索引信息吗?

我们假设有一个列表a = [1, 3, 5, 6, 8].

我想在该列表上应用一些转换,我想避免按顺序执行它,所以map(someTransformationFunction, a)通常可以做到这一点,但是如果转换需要了解每个对象的索引呢?

例如,假设每个元素必须乘以其位置.所以列表应该转换为a = [0, 3, 10, 18, 32].

有没有办法做到这一点?

python python-2.7 map-function

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

Spark,Hadoop和Cassandra之间的关系是什么?

我的理解是Spark是Hadoop的替代品.但是,在尝试安装Spark时,安装页面会要求安装现有的Hadoop.我无法找到任何澄清这种关系的东西.

其次,Spark显然与Cassandra和Hive有良好的连接.两者都有sql风格的界面.但是,Spark有自己的sql.为什么人们会使用Cassandra/Hive而不是Spark的原生sql?假设这是一个没有现有安装的全新项目?

hadoop cassandra apache-spark apache-spark-sql

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

如果没有设置__version__变量,如何检查python包的版本

我正在使用pyodbc,我想知道我正在使用它的版本.显然我不能使用,pyodbc.__version__因为可能没有设置变量.

我怎么能弄清楚包的版本?

python pip pyodbc

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

如何存储缩放参数供以后使用

我想应用缩放sklearn.preprocessing.scale模块,该模块scikit-learn提供中心化数据集,我将用它来训练svm分类器.

然后,我如何存储标准化参数,以便我也可以将它们应用于我要分类的数据?

我知道我可以使用standarScaler但我可以以某种方式将其序列化为一个文件,以便每次我想运行分类器时我都不必适应我的数据吗?

python normalization standardized scikit-learn

11
推荐指数
3
解决办法
5030
查看次数

直接索引numpy数组的时间复杂度是多少?

我假设有一个numpy数组,让我们说

>>>>nArray
array([[  23425.     ,  521331.40625],
       [  23465.     ,  521246.03125],
       [  23505.     ,  528602.8125 ],
       [  23545.     ,  531934.75   ],
       [  23585.     ,  534916.375  ],
       [  23865.     ,  527971.1875 ]])
Run Code Online (Sandbox Code Playgroud)

直接索引必须非常有效.

我想像这样的东西nArray[0, 1] = 69696420必须使用散列表,它会给出接近O(1)的时间复杂度.是对的吗?

更新

正如两个答案所指出的那样,索引numpy数组时不涉及散列.这两个答案都清楚地解释了索引是如何发生的.

更新2

我添加了一个简单的基准测试来证明答案的有效性

python big-o numpy

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

如何使用Django Rest过滤器限制查询结果

我正在开发一个用它构建的api Django Rest Framework.我已经定义了几个model类,我还创建了一些过滤器来应用于指定的某些查询api-endpoints.

我正在尝试应用LIMIT,queryset但我宁愿不使用Django表示法Entry.objects.all()[:5].相反,我希望能够从与模型关联的过滤器内部应用限制.

直到现在我还没有找到任何解决方案.我想我应该找到一种方法来定义一个默认值的过滤器,这将导致不限制查询集,如果请求到达端点并包含类似的东西,?filter=10则查询集应该限制在前10个.

python django django-filter django-rest-framework

9
推荐指数
1
解决办法
8474
查看次数

xgboost sklearn包装器值0for参数num_class应大于等于1

我试图使用XGBClassifiersklearn多类问题提供的包装器.我的课程是[0,1,2],我使用的目标是multi:softmax.当我试图适应分类器时,我得到了

xgboost.core.XGBoostError:参数num_class的值0应大于等于1

如果我尝试设置num_class参数,我得到错误

得到了一个意外的关键字参数'num_class'

Sklearn会自动设置此参数,因此我不应该传递该参数.但为什么我会收到第一个错误?

python scikit-learn xgboost

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

如何将不同的时区应用于 PySpark 中的时间戳

我正在使用 Pyspark,我的输入数据包含一个时间戳列(包含时区信息),如下所示

\n
2012-11-20T17:39:37Z\n
Run Code Online (Sandbox Code Playgroud)\n

我想创建America/New_York这个时间戳的表示。我的理解是最好的工具是from_utc_timestamp. 尽管当我使用它时我得到了不合理的结果。

\n
F.from_utc_timestamp(F.col(\'ts\'), \'America/New_York\')\n>>> datetime.datetime(2012, 11, 20, 7, 39, 37)\n
Run Code Online (Sandbox Code Playgroud)\n

当它应该是

\n
datetime.datetime(2012, 11, 20, 12, 39, 37)\n
Run Code Online (Sandbox Code Playgroud)\n

从 from_utc_timestamp\'s doc我看到

\n
\n

如果输入是带有时区的字符串,则此函数可能会返回令人困惑的结果,例如 \xe2\x80\x982018-03-13T06:18:23+00:00\xe2\x80\x99。原因是,Spark首先根据字符串中的时区将字符串转换为时间戳,最后根据会话本地时区将时间戳转换为字符串来显示结果。

\n
\n

所以我认为包含tzinfo并且不天真的时间戳是罪魁祸首。但我找不到从时间戳中删除这些信息的好方法。

\n

免责声明 - 1. 我不想为此依赖 UDF 2. 我无法更改SparkSession时区,因为这不是专用于该作业的集群。

\n

有任何想法吗?

\n

datetime apache-spark apache-spark-sql pyspark

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

如何在不暴露数据库中字段名称的情况下使用OrderingFilter

我有一个使用OrderingFilter后端的模型.现在只id允许按字段排序.

我想提供其他字段的排序选项,但不必在我的数据库中公开字段名称.有没有办法做到这一点?

django django-views django-filter django-rest-framework

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

如何停止守护程序线程?

我有一个简单的生产者消费者应用程

生产者是一个将东西写入队列的线程,而消费者是一个线程,它从队列中读取消息并在某些点退出.

我的制片人看起来有点像这样

def producer(queue):
    while not queue.full():
        queue.put(randint(1, 199))
Run Code Online (Sandbox Code Playgroud)

和消费者

def consumer(queue):
    for i in range(100):
        print(queue.get())
        queue.task_done()
Run Code Online (Sandbox Code Playgroud)

在我的主要部分,我调用那样的线程

p = Thread(target=producer)
c = Thread(target=consumer)

p.daemon = True
p.start()
c.start()
c.join()
Run Code Online (Sandbox Code Playgroud)

c完成唯一剩下的非deamon线程是main时,结束这些线程的正确方法是什么?

更新

这是我的生产者正在使用的确切代码,因为消费者正在退出,问题在于生产者

def generate_random_alphanumerics(msg_queue):
    while True:
        if not msg_queue.full():
            msg_queue.put(hashlib.sha1(bytes(randint(1, 10000))).hexdigest() * 10)
        else:
            sleep(0.01)
Run Code Online (Sandbox Code Playgroud)

是线程正在睡觉的问题?

python multithreading python-multithreading python-3.x

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