小编Whi*_*hir的帖子

python中转置函数的差异

我用随机数生成一个大矩阵(100x100,我们称之为X),使用numpy.matrix(),这样我就有了一个numpy.ndarray.

我一直想知道这两个操作之间是否有任何区别:

  1. numpy.transpose(X)
  2. XT

我已经在一个范围为1000的循环中测量了每个操作的时间,看起来XT明显快于numpy.transpose(X)

新增基准:

对于100x100矩阵,我得到了以下XTnumpy.tranpose(X)的结果

在10.000范围循环中:

  • 7421/10.000:XT最快
  • 1256/10.000:numpy.transpose(X)最快
  • 1323/10.000:相同的计算时间或差异太小而无法确定

添加了以下代码

    import numpy as np
    import time

    np_transpose_count = 0
    T_transpose_count = 0
    equal_count = 0

    for i in range(10000):
       Se = np.random.rand(100,100)

       tic1 =time.clock()
       ST_T = Se.T
       toc1=time.clock()

       tic2 =time.clock()
       ST_np = np.transpose(Se)
       toc2=time.clock()

       if (toc1-tic1) < (toc2-tic2):
           T_transpose_count+=1
       elif (toc1-tic1) > (toc2-tic2):
           np_transpose_count+=1
       else:
           equal_count+=1

    print(T_transpose_count, np_transpose_count, equal_count)
Run Code Online (Sandbox Code Playgroud)

最好的问候Whir

python transpose numpy

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

https 在多个 docker 容器中

我在弄清楚如何使用包含多个 Docker 容器的 https 正确设置 Web 服务器时遇到问题。

我有一个使用“httpd” docker-image运行 apache 的主容器。为简单起见,我们称这个网站为“ main.com ”。SSL 在这里工作得很好。我已经设置了 httpd.conf 配置文件以将所有对端口 80 的调用重定向到端口 443 并加载 SSL 和代理模块。(端口 80 和 443 都暴露了)。

我有另一个 Docker 容器,它运行一个 API 来为“ main.com ”提供地理数据。我们可以称这个容器为“ side-container ”。在“ side-container ”的 Dockerfile 中,我从中公开了端口 8080。然后我可以调用“ main.com:8080 ”来查询我运行 API 的“ side-container ”。

问题 -->至少在我将“ main.com ”更改为仅使用 https之前我可以。

我被困在试图让“ side-container ”再次工作。尝试连接到“ main.com:8080 ”时,出现超时错误。

我的“docker ps”看起来像这样:

IMAGE  COMMAND PORTS NAMES        
main-container     "httpd-foreground"  0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:9010->9010/tcp  main
side-container:latest   "/docker-entrypoint.…"  0.0.0.0:8080->8080/tcp side-container
Run Code Online (Sandbox Code Playgroud)

我使用 docker-compose 来控制容器,所以也许我需要在那里设置一些东西?我已经尝试通过使用 apache 中的反向代理设置(请参阅下面的 …

apache ssl docker docker-compose

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

Ubuntu 上的 Swift CryptoKit

我正在尝试将一个小的 swift 程序“ main.swift ”编译为Ubuntu 18.08 上的可执行文件。我使用Swift 包管理器来管理我的依赖项。在这个非常简单的情况下,我只有一个依赖项,即这个开源 CryptoKit。我有一个 swift 文件,它只是尝试导入 CryptoKit。

import Foundation
import CryptoKit
print("phew")
Run Code Online (Sandbox Code Playgroud)

我的Package.swift文件如下所示:

// swift-tools-version:5.2

import PackageDescription

let package = Package(
    name: "decryp",
    dependencies: [
      .package(url: "https://github.com/apple/swift-crypto.git", .upToNextMajor(from: "1.0.1"))
    ],
    targets: [
        .target(
            name: "decryp",
            dependencies: ["swift-crypto"]
        ),
        .testTarget(
            name: "decrypTests",
            dependencies: ["decryp"]),
    ]
)
Run Code Online (Sandbox Code Playgroud)

当我尝试使用swift build构建可执行文件时,它会获取存储库,但随后会出现未找到产品的错误。来自快速构建的标准输出:

Fetching https://github.com/apple/swift-crypto.git
Cloning https://github.com/apple/swift-crypto.git
Resolving https://github.com/apple/swift-crypto.git at 1.0.2
'decryp' /home/kah/decryp: error: product 'swift-crypto' not found. It is required by target …
Run Code Online (Sandbox Code Playgroud)

swift swift-package-manager apple-cryptokit

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