我正在学习如何根据教程(https://packaging.python.org/en/latest/tutorials/packaging-projects/)为 PyPI 打包 Python 项目。对于示例项目,他们使用文件夹结构:
\npackaging_tutorial/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 LICENSE\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src/\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example_package_YOUR_USERNAME_HERE/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests/\nRun Code Online (Sandbox Code Playgroud)\n我只是想知道为什么src/需要该文件夹?它有特定的目的吗?可以直接将包包含在顶部文件夹中吗?例如会
packaging_tutorial/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 LICENSE\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 example_package_YOUR_USERNAME_HERE/\n\xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 example.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 tests/\nRun Code Online (Sandbox Code Playgroud)\n有什么缺点或引起并发症吗?
\n给定一个f(x)带有输入向量x并返回相同长度向量的函数,如何找到函数设置约束的根x?(例如,每个组成部分的范围x.)
令我惊讶的是,我找不到很多关于此的有用信息.在优化和根查找算法的scipy列表中,似乎有一些标量函数的选项,如brentq.我找不到任何支持多变量情况的选项的算法.
当然,人们可以像处理返回向量的每个组件一样进行解决,然后使用其中一个最小化器,例如differential_evolution(这是我认为的唯一一个).我无法想象这是一个很好的策略,因为它杀死了牛顿算法的二次收敛.此外,我发现真的令人惊讶的是,似乎没有这个选项,因为它一定是一个非常普遍的问题.我错过了什么吗?
说我有同样大小的两个数组A和B.为了明确,我们假设它们是二维的.两个数组中的值表示一些数据,这些数据应平滑地取决于数组中的位置.但是,其中的一些值A已与其对应的值交换B.我想扭转这种交换,但我很难找到一个标准来告诉我何时应该交换两个值.
一个例子应该有帮助.下面是一些python代码,它创建了两个这样的数组,并随机交换了一些元素
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
import random
### create meshgrid ###
x = np.linspace(-10,10,15);
y = np.linspace(-10,10,11);
[X,Y] = np.meshgrid(x,y);
### two sufficiently smooth functions on the meshgrid ###
A = -X**2-Y**2;
B = X**2-Y**2-100;
### plot ###
ax=plt.subplot(2,2,1)
im1=ax.imshow(A,extent=[-10, 10, -10, 10])
ax.set_title('A')
ax2=plt.subplot(2,2,2)
im2=ax2.imshow(B,extent=[-10, 10, -10, 10])
ax2.set_title('B')
### randomly exchange a few of the elements of A and B ###
for i …Run Code Online (Sandbox Code Playgroud) 我有一些图中的子图fig1,通过创建
ax = fig1.add_subplot(221)
Run Code Online (Sandbox Code Playgroud)
然后,我通过每个子图绘制内容
im=ax.plot(x,y)
Run Code Online (Sandbox Code Playgroud)
并通过添加一些轴标签
ax.set_xlabel('xlabel')
Run Code Online (Sandbox Code Playgroud)
然后我想完全清除一个特定的子图,如何使用cla(),clf()或close()来清除matplotlib中的图?.然而问题是,ax.cla()并且ax.clear()似乎只清除了绘图中的数据,而没有移除轴,轴刻度标签等.另一方面plt.clf()清除整个图形.介于两者之间吗?类似clf的命令可以清除子图中的所有内容,包括轴标签?或者我只是以错误的方式使用命令?
我最近从使用 TeX (PGF/TikZ) 制作插图转向使用 Matplotlib 来达到同样的目的。主要原因是我的很多科学代码都是用python写的,有些插图应该直接使用python计算的输出。
我一直在使用annotate和花哨的箭头补丁,它已经做了很多我需要什么,比如绘图弯箭(例如参见这里)。与 TikZ 相比,我遗漏了一件特别的事情:路径装饰(参见https://tex.stackexchange.com/a/193451/96546以获取一个简单的 TikZ 示例)。我的问题是是否有办法在 matplotlib 中进行这种 TikZ 风格的路径装饰?
由于这是相当广泛的,我将设置一个特定的任务(取自 TeX.SE 问题https://tex.stackexchange.com/questions/193444/sketching-simple-arrows-with-different-direction):我将如何绘制Matplotlib 中的以下图片?
我知道这个问题,但实现实际上并不是端点之间线的装饰,而是绘制的函数。
这是一个奇怪的:
我发现自己需要一个 numpy 函数,我称之为真正的反函数np.cos(或另一个三角函数,这里使用余弦来确定)。我所说的“真逆”是一个函数invcos,这样
np.cos(invcos(x)) = x
Run Code Online (Sandbox Code Playgroud)
对于任何实数浮点数 x。两个观察结果:invcos(x)存在(它是一个复杂的浮点)并且不np.arccos(x)执行该工作,因为它仅适用于.-1 < x < 1
我的问题是是否有一个有效的 numpy 函数用于此操作,或者它是否可以轻松地从现有函数构建?
我的尝试是结合使用np.arccos和np.arccosh来手动构建该函数。这是基于这样的观察:如果 1 乘以复数单位,np.arccos则可以处理 [-1,1] 内的 x,并且可以处理 [-1,1] 之外的 x。np.arccosh要查看这是否有效:
cos_x = np.array([0.5, 1., 1.5])
x = np.arccos(cos_x)
cos_x_reconstucted = np.cos(x)
# [0.5 1. nan]
x2 = 1j*np.arccosh(cos_x)
cos_x_reconstructed2 = np.cos(x2)
# [nan+nanj 1.-0.j 1.5-0.j]
Run Code Online (Sandbox Code Playgroud)
所以我们可以将其结合起来
def invcos(array):
x1 = np.arccos(array)
x2 = 1j*np.arccosh(array)
print(x1)
print(x2)
x …Run Code Online (Sandbox Code Playgroud) 我必须用非常大的矩阵在matlab中进行计算.我已经确保在可能的情况下使用矩阵运算等.现在尝试微调.所以让A,B,C和D为矩阵:
C=A*B;
D=cos(C);
Run Code Online (Sandbox Code Playgroud)
看起来微不足道,以下会更快(如果我错了,请纠正我):
D=cos(A*B)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果有更多的预定义对象调用,它会更快吗?
D=f1(A*B) + f2(A*B) + …;
Run Code Online (Sandbox Code Playgroud)
而不是预定义C = A*B(这将节省我假设的大量计算).我有很多这样的表达方式,所以一些一般的见解是有用的(至少知道什么样的参数,即它所依赖的矩阵大小).
我有一个2D矩阵.矩阵中存在一些区域,其中元素是非零的,特别是在边缘周围的任何区域它们都是零.
我使用图像作为颜色图绘制矩阵,并希望在矩阵中添加显示非零值与零值之间边界的曲线.没有循环,有没有任何巧妙的方法来做到这一点?