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()
您可以使用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
我认为比较是错误的,你没有声明什么是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值并将其分隔在不同的列表或数组中,则可能需要追加。
问题如下:
>
x
类似[0,0.1,0.2,0.3…]
此外,未定义变量P
。您需要提供一个P
值,就像您为a
和L
提供的值一样。
要获取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: '#