小编bla*_*laz的帖子

区分方程

我想区分以下等式

from sympy import *
init_printing()

x, t, r, phi = symbols('x, t, r, phi')

# this is how I want to do it
eq = Eq(x(t), r*phi(t))
eq.diff(t)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

结果仅在左侧区分.我希望双方都能对它进行评估.这有可能以一种简单的方式吗?

目前我做以下事情:

Eq(eq.lhs.diff(t), eq.rhs.diff(t))
Run Code Online (Sandbox Code Playgroud)

python sympy

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

具有(M,N)右手大小矩阵的稀疏线性方程组的迭代求解

我想求解稀疏线性方程组:A x = b,其中A是(M×M)阵列,b是(M×N)阵列,x是和(M×N)阵列.

我用以下三种方式解决了这个问题:

  • scipy.linalg.solve(A.toarray(), b.toarray()),
  • scipy.sparse.linalg.spsolve(A, b),
  • scipy.sparse.linalg.splu(A).solve(b.toarray()) #返回密集数组

我希望使用迭代scipy.sparse.linalg方法解决问题:

  • scipy.sparse.linalg.cg,
  • scipy.sparse.linalg.bicg,
  • ...

然而,方法仅支持具有形状(M,)或(M,1)的右手侧b.关于如何将这些方法扩展到(M x N)数组b的任何想法?

python arrays numpy linear-algebra scipy

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

升级Anaconda Python版本

我想在Windows操作系统上的cmd(命令提示符)中将Anaconda Python版本从3.4升级到3.5.我怎样才能做到这一点?

如果我在文档中这样做:

conda update conda
conda update anaconda
Run Code Online (Sandbox Code Playgroud)

Python版本保持不变(3.4).

python anaconda

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

绘制立方体上的曲面

我想将曲面绘制成一个立方体matplotlib.我正在尝试使用ax.plot_surface(X, Y, Z),但我有点困惑.它应该是什么X,YZ表示为2D数组?

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

points = np.array([[-1, -1, -1],
                      [1, -1, -1 ],
                      [1, 1, -1],
                      [-1, 1, -1],
                      [-1, -1, 1],
                      [1, -1, 1 ],
                      [1, 1, 1],
                      [-1, 1, 1]])

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# ax.plot_surface(X, Y, Z)  # how?
ax.scatter3D(points[:, 0], points[:, 1], points[:, 2])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

PyQt:keyPressEvent 和 keyReleaseEvent - 按住不反弹

我想要实现 a QDialog,其中一个键被按下一段时间(秒)然后被释放。

我试着用keyPressEventkeyReleaseEvent函数来做这件事。

我遇到的问题是,当按下一个键时,去抖动 ( keyReleaseEvent) 发生得非常快,这在我的情况下是不希望的。

在这里,这就是我所做的:

def keyPressEvent(self, eventQKeyEvent):
    key = eventQKeyEvent.key()
    if key == 54:
    print('pressed')  # 6


def keyReleaseEvent(self, eventQKeyEvent):
    key = eventQKeyEvent.key()
    if key == 54:
    print('released')  # 6
Run Code Online (Sandbox Code Playgroud)

输出:

'pressed'
'released'
'pressed'
'released'
'pressed'
'released'
...
'pressed'
'released'
Run Code Online (Sandbox Code Playgroud)

我想得到:

'pressed'
'released'
Run Code Online (Sandbox Code Playgroud)

或者:

'pressed'
'pressed'
'pressed'
...
'pressed'
'pressed'
'released'
Run Code Online (Sandbox Code Playgroud)

qt pyqt pyside

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

标签 统计

python ×4

anaconda ×1

arrays ×1

linear-algebra ×1

matplotlib ×1

numpy ×1

pyqt ×1

pyside ×1

qt ×1

scipy ×1

sympy ×1