Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.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_Indexing - Fatal编程技术网

Python 索引器:仅整数、片(`:`)、省略号(`…`)

Python 索引器:仅整数、片(`:`)、省略号(`…`),python,numpy,indexing,Python,Numpy,Indexing,我知道这个问题有很多答案,但我仔细研究了所有答案,没有找到适合我的答案。 我相信这个错误是幼稚的,但仍然找不到解决办法。 我想从numpy.linspace中获取一些元素 import numpy #Porosity range phi = numpy.linspace(0.1, 1, num=10) mu = [1, 10, 100, 1000] 示例说明了它的外观,但不在循环中,以及它的工作原理: mu_total3 = mu[0]*phi[2]+ mu[1]*(1 - phi[

我知道这个问题有很多答案,但我仔细研究了所有答案,没有找到适合我的答案。 我相信这个错误是幼稚的,但仍然找不到解决办法。 我想从
numpy.linspace
中获取一些元素

 import numpy
 #Porosity range
 phi = numpy.linspace(0.1, 1, num=10)
 mu = [1, 10, 100, 1000]
示例说明了它的外观,但不在循环中,以及它的工作原理:

 mu_total3 = mu[0]*phi[2]+ mu[1]*(1 - phi[2])
 print(mu_total3)
 7.3
以下是我想要的:

 for x in phi:
      mu_total = mu[0]*phi[x]+ mu[1]*(1 - phi[x])
      print(mu_total)

Numpy专门从事矢量运算。这就是获取一个或两个数组并对其所有元素应用一个操作。对于python列表,您可以编写:

zs = [] 
for x, y in zip(xs, ys):
    z = x + 2*y
    zs.append(z)
print(zs)
当使用numpy数组时,您可以写入:

zs = xs + 2*ys
print(zs)
应用于您的代码,该代码将成为:

mu_totals = mu[0]*phi + mu[1]*(1 - phi)

当您在phi:中对x执行
时,
x
看起来像什么?你期望它是什么?你能证明使用φ[x]
的合理性吗?在原始版本中,您使用的是
phi[2]
。为什么要更改?我认为您想要的是
对于len(phi)中的I:mu[0]*phi[I]+…
或者
对于phi中的p:mu[0]*p+…
。您需要回顾Python迭代的基础知识<代码>对于['a'、'b'、'c']中的i:打印(i)。迭代变量是源列表(或数组)的一个元素;它不是索引或计数器。@ThomasKühn谢谢,我解决了这个问题。