Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算数组中每个值的公式?_Python_Numpy_Formula - Fatal编程技术网

Python 如何计算数组中每个值的公式?

Python 如何计算数组中每个值的公式?,python,numpy,formula,Python,Numpy,Formula,我试图了解如何使用numpy计算不同时间的公式。代码的编写方式给出了y大于0的所有值。我正在试验如何获得所有y的值 有人能给我解释一下这个部分吗:ft=t*[y>=0.0]。如何使用括号内的零件 from numpy import * g = 10.0 h0 = 10.0 t = arange(0, 10.1 ,0.1) y = h0 - 0.5*g*t*t ft = t * [y >= 0.0 ] print(ft) 这是输出,但我希望看到所有计算的值。所以我做了一点实验,但

我试图了解如何使用numpy计算不同时间的公式。代码的编写方式给出了y大于0的所有值。我正在试验如何获得所有y的值

有人能给我解释一下这个部分吗:
ft=t*[y>=0.0]
。如何使用括号内的零件

from numpy import *

g = 10.0
h0 = 10.0

t = arange(0, 10.1 ,0.1)
y = h0 - 0.5*g*t*t

ft = t * [y >= 0.0 ]


print(ft)
这是输出,但我希望看到所有计算的值。所以我做了一点实验,但我不知道该怎么做,怎么做;[y>=0.0]零件完全正常工作

[[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.  1.1 1.2 1.3 1.4 0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0. ]]
如果我使用[y]而不是[y>=0.0],我会得到以下结果:

[[ 0.000000e+00  9.950000e-01  1.960000e+00  2.865000e+00  3.680000e+00
   4.375000e+00  4.920000e+00  5.285000e+00  5.440000e+00  5.355000e+00
   5.000000e+00  4.345000e+00  3.360000e+00  2.015000e+00  2.800000e-01
  -1.875000e+00 -4.480000e+00 -7.565000e+00 -1.116000e+01 -1.529500e+01
  -2.000000e+01 -2.530500e+01 -3.124000e+01 -3.783500e+01 -4.512000e+01
  -5.312500e+01 -6.188000e+01 -7.141500e+01 -8.176000e+01 -9.294500e+01
  -1.050000e+02 -1.179550e+02 -1.318400e+02 -1.466850e+02 -1.625200e+02
  -1.793750e+02 -1.972800e+02 -2.162650e+02 -2.363600e+02 -2.575950e+02
  -2.800000e+02 -3.036050e+02 -3.284400e+02 -3.545350e+02 -3.819200e+02
  -4.106250e+02 -4.406800e+02 -4.721150e+02 -5.049600e+02 -5.392450e+02
  -5.750000e+02 -6.122550e+02 -6.510400e+02 -6.913850e+02 -7.333200e+02
  -7.768750e+02 -8.220800e+02 -8.689650e+02 -9.175600e+02 -9.678950e+02
  -1.020000e+03 -1.073905e+03 -1.129640e+03 -1.187235e+03 -1.246720e+03
  -1.308125e+03 -1.371480e+03 -1.436815e+03 -1.504160e+03 -1.573545e+03
  -1.645000e+03 -1.718555e+03 -1.794240e+03 -1.872085e+03 -1.952120e+03
  -2.034375e+03 -2.118880e+03 -2.205665e+03 -2.294760e+03 -2.386195e+03
  -2.480000e+03 -2.576205e+03 -2.674840e+03 -2.775935e+03 -2.879520e+03
  -2.985625e+03 -3.094280e+03 -3.205515e+03 -3.319360e+03 -3.435845e+03
  -3.555000e+03 -3.676855e+03 -3.801440e+03 -3.928785e+03 -4.058920e+03
  -4.191875e+03 -4.327680e+03 -4.466365e+03 -4.607960e+03 -4.752495e+03
  -4.900000e+03]]
我想知道如何使用numpy一次性计算不同时间间隔公式的所有结果


谢谢,

y>=0.0
提供了一个布尔值数组,根据条件
y>=0.0
的实现情况,该数组包含True/False。当您将它括在
[]
中作为
[y>=0.0]
时,您会得到一个包含单个布尔数组的列表,正如@nicola在下面的评论中指出的那样

[array([ True,  True,  True,  True, True, False, False, False,...
   ... False, False, False, False])]

现在将其与
arange
数组相乘,当
*
运算符的右侧为
False
时,数组将为0,当
*
运算符的右侧为
True

数组[y>=0.0]时,数组将为
arange
的实际值生成布尔数的集合和数组。i、 e.如果y>=0,则为1;如果y>=0,则为0。然后将1和0的数组乘以t


但是,从你的问题中我不清楚你想用它做什么。

实际上
[y>=0.0]
给了你一个
列表
,其中只有一个元素就是你正在谈论的数组。谢谢你的快速回复!这就更清楚了。我现在知道它是怎么工作的了。基本上,我首先计算ft=t*[y>=0.0]以上每t的y值,然后我只与代表真正布尔值的1相乘。@nicola:从技术上讲,你是绝对正确的。让我重新措辞。谢谢我edited@Sheldore这只是为了指出
[
这里很奇怪,因为它在
ft
上创建了一个额外的维度,我不清楚这是否是有意的。问题已经解决了。我的想法是错误的,但现在已经澄清了。我本来希望在秋天得到所有的时间,但当然,如果我只是打印出时间:array.tnx来寻求帮助,我们可以关闭t我能理解这并不清楚。我想在所有时间都可见的情况下得到结果。但当然这只是时间序列,所以我想错了。我的问题解决了