当前位置: 首页 > 知识库问答 >
问题:

从numpy数组计算V有什么错?我无法获取具有“V”值的数组

慕承允
2023-03-14
import numpy as np
a = 3.9 #m
L = 7.8 #m

x = np.arange(0,L+0.1,0.1)

def fun_v():
    for value in x:
        if 0 < x < a :
            V= P*(1-(a/L))
        if a < x < L :
            V= -P*(a/L)
    return (V) 
V = fun_v()

print('V =',V)

#ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()

共有3个答案

钮瀚
2023-03-14

您可以使用NumPy花式索引技术来完成它,这将更快且更容易理解:

import numpy as np
a = 3.9 #m
L = 7.8 #m
P=1
x = np.arange(0,L+0.1,0.1)
x[(0<x)&(x>a)]=P*(1-(a/L))
x[(a<x)&(x>L)]=-P*(a/L)
x
宗政功
2023-03-14

我认为比较是错误的,你没有声明什么是p。我实际上不确定你到底想做什么,因为它不会返回任何东西。但是从你的代码来看,我相信它应该是这样的:

import numpy as np
a = 3.9 #m
L = 7.8 #m
x = np.arange(0,L+0.1,0.1)

def fun_v(x_):
    for value in x_:
        P = 1 # declare your P value
        if 0 < value < a:
            V = P*(1-(a/L))
        elif a < value < L:
            V = -P*(a/L)
    return V

V = fun_v(x)
print(V)

但是在这段代码中,V值不是数组或列表。它只会返回一个值。如果要计算所有x值并将其分隔在不同的列表或数组中,则可能需要追加。

濮嘉茂
2023-03-14

问题如下:

>

  1. 您首先分配x类似[0,0.1,0.2,0.3…]

此外,未定义变量P。您需要提供一个P值,就像您为aL提供的值一样。

要获取V值的数组,需要将计算的V值推送到空数组中,或者可以使用map功能。

一个工作实例

import numpy as np
a = 3.9 
L = 7.8 
P = 10 # P is defined

x = np.arange(0,L+0.1,0.1)

def fun_v():
    arr = [] # empty array is initialized
    for value in x:
        if 0 < value < a : # value is compared instead of x
            V = P*(1-(a/L))
            arr.append(V) # V is pushed after calculation
        if a < value < L :
            V = -P*(a/L)
            arr.append(V)
    return arr # return the array of v values
V = fun_v()

print(V)
 类似资料:
  • 问题内容: 说我有一个像这样的数组: 如何计算具有给定值的数字(在示例中为空白)? 而且有效吗?(大约十二个数组,每个数组包含数百个元素)此示例超时(超过30秒): 在这种情况下,空白元素的数量为3。 问题答案: 如何使用array_count _values来获得一个为您计算一切的数组?

  • 回溯(最近调用的最后一次): 文件“”,第1行,在runfile('/experient.py',wdir='/tensorflow')中 文件“C:\users\hp\anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py”,第710行,在runfile execfile(文件名,命名空间)中 文件“C:\users\hp\a

  • 我有两个嵌套的< code>v-for元素,看起来像: 我想只展示前五个产品,不考虑类别数量和每个类别的产品数量。 如何在第二个 元素内获取累积索引计数(相对于从 categoryIndex 父数组显示的产品总数)?

  • 问题内容: 可以说我有一个Python Numpy数组。 我想从步长为3的长度为5的数组创建一个子序列矩阵,因此结果矩阵如下所示: 实现此目的的一种可能方法是使用faor循环。 有没有更干净的方法可以在Numpy中实现呢 问题答案: 方法#1: 使用broadcasting 方法2:使用更有效的方法NumPy strides 样品运行

  • 问题内容: 我有具有重复值的numpy 2d数组。 我正在搜索这样的数组。 输入是列表,其编号类似于列0的值。我想要的最终结果是任何形式的结果行,例如数组,列表或元组 我的代码工作正常,但似乎不是pythonic。有没有更好的多值搜索策略? 就像只进行一次查找即可获取所有值的地方。 我的真实数组很大 问题答案: 方法1: 使用- 方法2: 使用-

  • 我们用v-for指令根据一组数组的选项列表进行渲染。v-for指令需要使用item in items形式的特殊语法,items是源数据数组并且item是数组元素迭代的别名。 <ul id="example-1"> <li v-for="item in items">{{ item.message }}</li> </ul> var example1 = new Vue({ el: '#