Python 如何创建一个Nx1维数组,其中每个元素都是另一个数组的函数?

Python 如何创建一个Nx1维数组,其中每个元素都是另一个数组的函数?,python,Python,返回错误: TypeError:“float”对象不可编辑 我只想创建一个与I大小相同的Gc数组,其中每个元素都是I的函数Gc.extend需要一个列表,而不是浮动。您很可能希望改用Gc.append(K3),因为它采用标量而不是列表,您可以使用函数(内置)或列表理解来实现这一点 例如,假设要将函数foo()应用于整个项目列表(i),则可以编写: import math as m import numpy as np i = np.mgrid[1:21:1] N = [1,1,0] def G1

返回错误:

TypeError:“float”对象不可编辑


我只想创建一个与
I
大小相同的
Gc
数组,其中每个元素都是
I
的函数
Gc.extend
需要一个
列表
,而不是
浮动
。您很可能希望改用
Gc.append(K3)
,因为它采用标量而不是
列表

,您可以使用函数(内置)或列表理解来实现这一点

例如,假设要将函数
foo()
应用于整个项目列表(
i
),则可以编写:

import math as m
import numpy as np
i = np.mgrid[1:21:1]
N = [1,1,0]
def G1(i):
    H1 = i**2
    H2 = 2*H1
    return H2
def G2(i):
    H1 = i**3
    H2 = 3*H1
    return H2
def G3(i):
    H1 = i**4
    H2 = 4*H1
    return H2
Gc = []
for a in xrange(1,21):
    K1 = [G1(i)[i[a]], G2(i)[i[a]], G3(i)[i[a]]]
    K2 = np.multiply(N,K1)
    K3 = m.fsum(K2)
    Gc.extend(K3)

这将为您提供一个列表
Gc
,如下所示:

Gc = [foo(x) for x in i]
这两种方法也适用于多个参数的函数,即:

[foo(i[1]), foo(i[2]), ... , foo(i[n])]


你的问题很含糊。在不深入了解细节和提出解决方案的情况下,我将尝试解决我在代码中看到的问题

  • K3不是一个列表,而是一个标量。不能通过extend方法将其传递给列表。您可能需要类似于
    Gc.extend([K3])
    的东西
  • 即使求解(1),也会得到语句的索引器
    K1=[G1(i)[i[a]],G2(i)[i[a]],G3(i)[i[a]]]
    。当a=19时,
    i[a]
    将是'20',但i的长度以及G(i)是20。因此,您还需要适当地纠正它 编辑***在试图从你的计划和你的结语陈述中理解之后,我提出了这个解决方案

    Gc = [foo(i,x) for i,x in enumerate(i)]
    

    list.extend()
    返回
    None
    。为什么这个问题被标记为.net?
    def foo(a,b):
        return a*b**a
    Gc = map(foo,i,q) # i and q are lists of equal length
    
    Gc = [foo(i,x) for i,x in enumerate(i)]
    
    for a in xrange(0,20):
        GCArray=[G1,G2,G3]    #Array of Functions
        # You can also do [g(i[a]) for g in [G1,G2,G3]]
        K1 = [g(i[a]) for g in GCArray] #Apply ath i to all the functions
        K2 = np.multiply(N,K1) #Rest Similar to yours
        K3 = m.fsum(K2)
        Gc.extend([K3])