我写了以下代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 100)
y = x**2
plt.plot(x, y)
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.title("graph of $x^2$")
plt.show()
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,它显示以下错误:

我已经成功安装了 NumPy,但仍然收到此警告。我怎样才能摆脱这个?
我正在研究球体的空间搜索案例,我想在其中找到连接的球体。为此,我在每个球体周围搜索中心距搜索球体\xe2\x80\x99s 中心(最大球体直径)距离的球体。起初,我尝试使用 scipy 相关方法来执行此操作,但与等效的 numpy 方法相比,scipy 方法需要更长的时间。对于scipy,我首先确定了K最近球体的数量,然后通过 找到它们cKDTree.query,这导致了更多的时间消耗。然而,即使省略具有常量值的第一步,它也比 numpy 方法慢(在这种情况下省略第一步不好)。这与我对 scipy 空间搜索速度的期望相反。因此,我尝试使用一些列表循环代替一些 numpy 行来加速使用 numba prange。Numba 运行代码的速度要快一些,但我相信可以通过矢量化、使用其他替代 numpy 模块或以其他方式使用 numba 来优化此代码以获得更好的性能。为了防止可能的内存泄漏和球体数量较多的 \xe2\x80\xa6,我在所有球体上使用了迭代。
import numpy as np\nimport numba as nb\nfrom scipy.spatial import cKDTree, distance\n\n# ---------------------------- input data ----------------------------\n""" For testing by prepared files:\nradii = np.load(\'a.npy\')     # shape: (n-spheres, )     must be loaded by np.load(\'a.npy\') or np.loadtxt(\'radii_large.csv\')\nposs = np.load(\'b.npy\')      # shape: (n-spheres, 3)    must be loaded by np.load(\'b.npy\') or np.loadtxt(\'pos_large.csv\', delimiter=\',\')\n"""\n\nrnd = np.random.RandomState(70)\ndata_volume = …Run Code Online (Sandbox Code Playgroud) matplotlib 有没有快速缩放轴的方法?
说我想要情节
import matplotlib.pyplot as plt
c= [10,20 ,30 , 40]
plt.plot(c)
Run Code Online (Sandbox Code Playgroud)
它会绘制
如何快速缩放x 轴,例如将每个值乘以5?一种方法是为x轴创建一个数组:
x = [i*5 for i in range(len(c))]
plt.plot(x,c)
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更短的方法来做到这一点,而不创建x轴的列表,比如plt.plot(index(c)*5, c)
我在控制台中收到以下 python 警告。我没有找到这些问题的任何解决方案。我们不想抑制警告。此外,我们还有一个庞大的代码库设置。如何知道哪个代码块是导致此错误的原因,因为警告不给出代码行号。我正在使用以下版本的 python 和 numpy。是否是由于旧版本的 python 和 numpy.
Python版本 - 3.6.8 Numpy版本 - 1.19.5 matplotlib版本是3.3.4 pandas版本是1.1.5
警告:
/python3.6/site-packages/matplotlib/cbook/ init .py:1402: FutureWarning: 对多维索引的支持(例如obj[:, None])已弃用,并将在未来版本中删除。在建立索引之前转换为 numpy 数组。
python3.6/site-packages/pandas/core/indexing.py:1743:SettingWithCopyWarning:尝试在 DataFrame 的切片副本上设置值。尝试使用 .loc[row_indexer,col_indexer] = value 代替
我有一个有向图 G,是使用 Python 中的 networkX 创建的。每条边都是双向的。我有一个特定的节点列表,我试图找到这些节点内的连接组件。下面我创建了一个示例数据集(我正在处理的实际图表要大得多)。
import networkx as nx
G = nx.DiGraph()
nodeList = range(1,10)
for i in range (0,len(nodeList)):
    G.add_node(nodeList[i])
o_nodes = [1,1,2,3,3,3,3,4,4,5,5,6,7,7,8,9,9,10]
d_nodes = [8,3,3,1,7,2,4,5,3,4,6,5,3,9,1,7,10,9]
for i in range(0, len(o_nodes)):
    G.add_edge(o_nodes[i], d_nodes[i])  
    
nx.draw(G, with_labels = True)
Run Code Online (Sandbox Code Playgroud)

假设我有一个节点列表 ,selectNodeList = [1,2,5,6,7,8,9,10]并且我需要找到这些节点内的连接组件。所以,结果我想得到类似的东西[8,1], [7,9,10], [2], [5,6]。我想从选择节点列表中获取覆盖所有节点所需的最小组件数。
我尝试过使用 for 循环,if nx.shortest_path_length(G, source = selectNodeList[i], target = selectNodeList[j]) == 1:然后附加到列表来获取每个节点的直接邻居,但我不确定之后如何到达邻居以及如何创建可读输出。
编辑:这是我在上一部分中提到的代码。我不愿意添加它,因为它还没有完全完成。我的思路是首先获取两个直接邻居的节点,然后搜索另一个也是其中一个节点的直接邻居的节点,依此类推。但是,这不会输出根本未连接的节点,并且会产生一个包含重复连接节点的列表(例如 [1 8 1 8 1 8 5 6 5 6 ...]。对我来说,一个问题是我不我不知道如何处理创建不同维度的输出,也不知道如何在不创建大量 for 循环的情况下解决问题。
connected = …Run Code Online (Sandbox Code Playgroud) 我想通过perfplot使用多个参数来展示某些函数的性能,但我不知道如何才能做到这一点(我不太熟悉perfplot)。有人说将所有参数广播到 x,但我很困惑如何使用它。假设我们有以下函数:
from scipy.ndimage import zoom
import numpy as np
f = 5
n = 3
arr = np.random.random_integers(0, 1, (f, f))
def scipy_zoom(arr, n):
    return zoom(arr, n)
def numpy_rep(arr, n):
    return arr.repeat(n, 0).repeat(n, 1)
Run Code Online (Sandbox Code Playgroud)
两者f和n变化都需要进行评估,似乎最好将它们分开绘制,即一次f是恒定的,n一次是变化的,一次是相反的。我不知道如果可以绘制3D perfplot (如果在答案中显示这将很有用,但不是这个问题的主要目的),那么它会有多容易理解。
我需要更快的代码来删除与另一个一维数组(数组长度〜1e5-5e5 -->很少达到7e5)常见的一维数组(数组长度〜10-15)的值,它们是包含整数的索引数组。数组中没有重复项,并且它们没有排序,并且修改后值的顺序必须保留在主数组中。我知道可以使用这样的np.setdiff1dor来实现np.in1d(两者都不支持在 no-python 模式下进行 numba jitted),而其他类似的帖子(例如this)没有更有效的方法来做到这一点,但性能在这里很重要,因为所有主索引数组中的值将在循环中逐渐被删除。
import numpy as np
import numba as nb
n = 500000
r = 10
arr1 = np.random.permutation(n)
arr2 = np.random.randint(0, n, r)
# @nb.jit
def setdif1d_np(a, b):
    return np.setdiff1d(a, b, assume_unique=True)
# @nb.jit
def setdif1d_in1d_np(a, b):
    return a[~np.in1d(a, b)]
Run Code Online (Sandbox Code Playgroud)
Norok2针对 2D 数组提出了另一篇相关文章,该解决方案(使用 numba 的类似散列的方式)比那里描述的通常方法快约 15 倍。如果可以为一维数组准备,这个解决方案可能是最好的:
@nb.njit
def mul_xor_hash(arr, init=65537, k=37):
    result = init
    for x in arr.view(np.uint64):
        result = (result * k) …Run Code Online (Sandbox Code Playgroud) 我有一个 JAX 布尔数组,想要打印一条与True之和相结合的语句:
import jax
import jax.numpy as jnp
from jax.experimental.host_callback import id_print
@jax.jit
def overlaps_jax():
    mask_cp = jnp.array([True, False, False, True, False, True, False, True, True])
    id_print(jnp.sum(mask_cp))
overlaps_jax()
Run Code Online (Sandbox Code Playgroud)
中有 5 个Truemask_cp;我想打印为:
With jax accelerator
There are 5 true bools
Run Code Online (Sandbox Code Playgroud)
由于这个函数是jitted 的,我尝试使用 来打印它id_print,但我不能。id_print(jnp.sum(mask_cp))将打印5,但我无法将其与字符串一起使用。我已经尝试过以下方法:
id_print(jnp.sum(mask_cp))
# print:
# 5
id_print("\nWith jax accelerator\nThere are " + jnp.sum(mask_cp) + " true bools\n")
# error:
# TypeError: can only concatenate str …Run Code Online (Sandbox Code Playgroud) 我有以下清单
L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]
Run Code Online (Sandbox Code Playgroud)
min(L)如果我使用我得到的功能131
是否有可能知道超过 200 的数字列表中的最小值?我想像min(L, Key>200)
期望的结果是 202
我有一个 2D NumPy 数组。我想切出不等长度的列子集,并将它们放入一个数组中,其余值由 填充nan。也就是说在:
data = np.random.normal(size=(100,4))
Run Code Online (Sandbox Code Playgroud)
我想从头到尾建立索引[75, 33, 42, 54]。也就是说,行索引从 75 到第 0 列的末尾,第 33 行到第 1 列的末尾,依此类推。
我尝试过data[[slice(75,100),slice(33,100)],:],但没有成功。
我有两个 numpy 数组,例如
    import numpy as np
    a=np.array([[ 3, nan,  4,  1,  4,  2,  2,  3],
                [ 2, nan,  1,  3, nan,  4,  4,  3],
                [ 3,  2, nan,  4, nan, nan,  3,  4],
                [ 2,  2,  2, nan,  1,  1 ,nan,  2]])
  
    b =np.array( [[ 2,  3,  2, 2,  3,  3,  3,  3],
                 [ 3,  3,  1,  4,  1,  4,  1, 7],
                 [ 4,  2, 5,  4,  4,  3, 10,  4],
                 [ 2,  4,  2,  1,  4,  1,  3, …Run Code Online (Sandbox Code Playgroud) python ×9
numpy ×7
performance ×3
matplotlib ×2
numba ×2
optimization ×2
python-3.x ×2
algorithm ×1
arrays ×1
graph ×1
jax ×1
jit ×1
min ×1
networkx ×1
perfplot ×1