小编Dor*_*rba的帖子

特殊情况下,字符串连接的 += 比 = 更有效

我有使用 python 3.11 的代码:

import timeit

code_1 = """
initial_string = ''
for i in range(10000):
    initial_string = initial_string + 'x' + 'y'
"""

code_2 = """
initial_string = ''
for i in range(10000):
    initial_string += 'x' + 'y'
"""

time_1 = timeit.timeit(code_1, number=100)
time_2 = timeit.timeit(code_2, number=100)

print(time_1)
# 0.5770808999950532
print(time_2)
# 0.08363639999879524
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下+=效率更高?据我所知,串联次数相同,执行顺序不会改变结果。

由于字符串是不可变的,这并不是因为 inplace shinanigans,而且我发现字符串 concat 的唯一问题是.join效率,但我不想要最高效的,只需理解为什么+=看起来比=.

使用此代码,表单之间的性能几乎相同:

import timeit

code_1 = """
initial_string = ''
for i …
Run Code Online (Sandbox Code Playgroud)

python string concatenation string-concatenation python-3.11

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

移植到64位时如何避免size_t转换为int警告?

我必须将非常大的C ++传统代码库转换为64位。我已经设法编译了一个基本模块,但是即使在这个小模块中,我也会收到800条警告:

warning C4267: = conversion from size_t to int, possible loss of data
Run Code Online (Sandbox Code Playgroud)

我知道为什么会出现这些,但是要摆脱它们我有什么选择?有没有什么系统的方法可以避免碰到每个实例?

c++ 64-bit

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

如何使用来自 s3 的预训练模型来预测一些数据?

我已经使用 sagemaker 训练了一个语义分割模型,并且输出已保存到 s3 存储桶中。我想从 s3 加载这个模型来预测 sagemaker 中的一些图像。

我知道如何预测我是否让笔记本实例在训练后继续运行,因为它只是一个简单的部署,但如果我想使用旧模型并没有真正的帮助。

我已经查看了这些来源,并且能够自己想出一些东西,但它不起作用,因此我在这里:

https://course.fast.ai/deployment_amzn_sagemaker.html#deploy-to-sagemaker https://aws.amazon.com/getting-started/tutorials/build-train-deploy-machine-learning-model-sagemaker/

https://sagemaker.readthedocs.io/en/stable/pipeline.html

https://github.com/awslabs/amazon-sagemaker-examples/blob/master/advanced_functionality/inference_pipeline_sparkml_xgboost_abalone/inference_pipeline_sparkml_xgboost_abalone.ipynb

我的代码是这样的:

from sagemaker.pipeline import PipelineModel
from sagemaker.model import Model

s3_model_bucket = 'bucket'
s3_model_key_prefix = 'prefix'
data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
models = ss_model.create_model() # ss_model is my sagemaker.estimator

model = PipelineModel(name=data, role=role, models= [models])
ss_predictor = model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge')
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services boto3 amazon-sagemaker

4
推荐指数
1
解决办法
4771
查看次数

Java QueryBuilders的嵌套Elasticsearch查询

我试图在java querybuilder中为elasticsearch实现此elasticsearch查询。但我无法获得同等的结果。有人能帮忙吗。

 GET /XX/XX/_search
    {
       "query": {
          "bool": {
             "must": [
                {
                   "nested": {
                      "path": "XX",
                      "filter": {
                         "term": {
                            "A": "7:140453136:T"
                         }
                      }
                   }
                },
                {
                   "nested": {
                      "path": "XX",
                      "filter": {
                         "term": {
                            "B": "RF"
                         }
                      }
                   }
                },
                {
                   "nested": {
                      "path": "XX",
                      "filter": {
                         "term": {
                            "C": "RFFF"
                         }
                      }
                   }
                }
             ]
          }
       }
    }
Run Code Online (Sandbox Code Playgroud)

我试过的代码:

   QueryBuilders qbWithArguments = QueryBuilders.boolQuery()
                    .must(QueryBuilders.termQuery("A", "RF"))
                    .must(QueryBuilders.termQuery("B", "EF"))
                    .must(QueryBuilders.termQuery("C", "RF"));
Run Code Online (Sandbox Code Playgroud)

java query-builder elasticsearch

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

postgres 上的单词匹配的正则表达式性能较差

我有一个被阻止的短语列表,我想匹配用户输入的文本中是否存在这些短语,但性能非常糟糕。

我正在使用这个查询:

SELECT value FROM blocked_items WHERE lower(unaccent( 'my input text' )) ~* ('[[:<:]]' || value || '[[:>:]]') LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

经过我的调查,我发现世界边界[[:<:]][[:>:]]执行非常糟糕,因为知道blocked_items 有 24k 条记录。

例如,当我尝试运行这个时:

SELECT value FROM blocked_items WHERE lower(unaccent( 'my input text ' )) ilike ('%' || value || '%') LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

与第一个相比,它非常快。问题是我需要保留单词边界的测试。

此检查在大型程序中频繁执行,因此性能对我来说非常重要。

你们有什么建议可以让这个更快吗?

解释分析屏幕截图

regex sql postgresql postgresql-9.3

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

如何将 Python 项目打包成独立的可执行文件?

我不想发布我的 python 项目,但是当我将它发送给某人时,他被迫安装我在我的 python 项目中使用的所有软件包。

有没有什么办法打包什么的,因为可能有一些用户对pip或者python不太熟悉。

问候

python release pip package

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

为什么numpy数组将int转换为float

我试图用整数填充数组,但似乎numpy数组继续将整数转换为浮点数.为什么会发生这种情况?如何阻止这种情况?

arr = np.empty(9)
arr[3] = 7
print(arr[3])
>>>7.0
Run Code Online (Sandbox Code Playgroud)

python numpy numpy-dtype

-1
推荐指数
1
解决办法
725
查看次数