IndexError: только целые числа, кусочки (`:`), многоточие (`...`) - PullRequest
0 голосов
/ 01 февраля 2019

Я понимаю, что есть много ответов на эту тему, но я изучил их все и не нашел что-то подходящее для меня.Я уверен, что ошибка детская, но до сих пор не могу найти решение.Я хочу взять некоторый элемент из 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)

1 Ответ

0 голосов
/ 01 февраля 2019

Numpy специализируется на выполнении векторных операций.Это берет один или два массива и применяет операцию ко всем ее элементам.Для списков Python вы можете написать:

zs = [] 
for x, y in zip(xs, ys):
    z = x + 2*y
    zs.append(z)
print(zs)

Когда с пустым массивом вы можете написать:

zs = xs + 2*ys
print(zs)

Применительно к вашему коду, который становится:

mu_totals = mu[0]*phi + mu[1]*(1 - phi)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...