小编Dog*_*ath的帖子

如何从numpy数组中获取单位向量

假设我有一个向量 v,我想要单位向量,即 v 的长度为 1.0 有没有直接的方法可以从 numpy 中得到它?

我想要这样的东西:

import numpy as np
v=np.arrange(3)
v_hat = v.norm()
Run Code Online (Sandbox Code Playgroud)

而不是,

length = np.linalg.norm(v)
v_hat = v / length
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

如何为字典变量设置python类型提示?

假设我有一个存储在变量“v”中的字典:

from typing import Dict

v = { 'height': 5, 'width':14, 'depth': 3 }

result = doSomething( v )

def doSomething( value:Dict[???] ):
    #do stuff
Run Code Online (Sandbox Code Playgroud)

如何在“doSomething”中声明字典类型?任何人的想法?非常感谢您的帮助 :)

python dictionary types

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

CMake:如何使用不同版本的 Qt 库进行编译?

如何让 CMake 使用 Qt4.8 或 Qt5 有条件编译?换句话说,如果 Qt5 可用,则使用 Qt5 进行编译。否则,如果 Qt4.8 可用,请使用它。

在我的 CMake 中,我有:

find_package(Qt5 COMPONENTS Core Gui Widgets...)
Run Code Online (Sandbox Code Playgroud)

这对于我的 Qt5 构建来说效果很好,但是如何使用 Qt4.8 构建相同的软件呢?

我需要包含主版本号的内容,例如:

find_package(Qt $QT_VERSION_MAJOR...)
Run Code Online (Sandbox Code Playgroud)

或使用条件,例如:

result = find_package(Qt 5...)
if (!result) then find_package(Qt4 ...)
Run Code Online (Sandbox Code Playgroud)

或者以某种方式检测当前安装的 Qt 版本。

我在安装了 Qt4.8 的机器上得到的错误是(不出所料):

CMake Error at CMakeLists.txt:54 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a …
Run Code Online (Sandbox Code Playgroud)

c++ qt cmake

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

动画 matplotlib 参数化示例

对 Python matlabplot 参数示例进行动画处理的 SIMPLIST 方法是什么?

我想逐项更新循环内的数据。可悲的是,这看起来很糟糕,而且总是闪烁着彩虹的每种颜色!有没有一种简单的方法可以让我在计算数据时更新数据?

from mpl_toolkits.mplot3d import Axes3D  # noqa: F401 unused import

import numpy as np
import matplotlib.pyplot as plt
import math

plt.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
i = 10
theta = 0
x=[]
y=[]
z=[]
# Prepare arrays x, y, z
while (theta < 4*np.pi):
    theta += 0.05
    z += [i] 
    r = i**2 + 1
    x += [r * math.sin(theta)]
    y += [r * math.cos(theta)]
    i +=1

    ax.plot(x, y, …
Run Code Online (Sandbox Code Playgroud)

python animation curve matplotlib

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

如何制作Python工厂类

我希望能够基于枚举类创建对象,并使用字典。像这样:

class IngredientType(Enum):
    SPAM        = auto() # Some spam
    BAKE_BEANS  = auto() # Baked beans
    EGG         = auto() # Fried egg

class Ingredient(object):
    pass    
class Spam(Ingredient):
    pass
class BakedBeans(Ingredient):
    pass
class Egg(Ingredient):
    pass


class IngredientFactory(object):
    """Factory makes ingredients"""

    choice = {
        IngredientType.SPAM: IngredientFactory.MakeSpam,
        IngredientType.BAKED_BEANS: IngredientFactory.MakeBakedBeans,
        IngredientType.EGG: IngredientFactory.MakeEgg
    }

    @staticmethod
    def make(type):
        method = choice[type]
        return method()

    @staticmethod
    def makeSpam():
        return Spam()

    @staticmethod
    def makeBakedBeans():
        return BakedBeans()

    @staticmethod
    def makeEgg():
        return Egg()
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

NameError: name 'IngredientFactory' is not defined
Run Code Online (Sandbox Code Playgroud)

由于某些原因,无法创建字典。我在哪里错了?

python enums dictionary factory

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

标签 统计

python ×4

dictionary ×2

animation ×1

arrays ×1

c++ ×1

cmake ×1

curve ×1

enums ×1

factory ×1

matplotlib ×1

numpy ×1

qt ×1

types ×1