【问题标题】:How to define an array without defining its elements?如何在不定义元素的情况下定义数组?
【发布时间】:2021-05-11 14:04:27
【问题描述】:

我想使用 scipy 优化 Python 中的一个问题。

为了实现这个目标:

  1. 我定义了一个特定长度的数组,但没有明确定义它的元素。

  2. 那么,我需要使用这个数组来优化问题。

  3. 在最后一步,我想打印这个数组作为结果。

这是一个简单的例子:

import numpy as np
from scipy.optimize import minimize

b0 = [1,3,4,2,5]
a = [] # This is the array I want to define. The length of the a should be equal to the b.

def objective(b):
    print(a*b)
    z=a.b.(-1)
    return z 

def constraint(b)
    return b[0]*b[1]*b[2]*b[3]*b[4]

print(objective(b0))

【问题讨论】:

  • 什么是长度> 0的空列表? Python 并没有真正的“空元素”概念,可能除了None。所以,你可以说a = [None] * len(b0),但我想说这通常不是很有用。我也不明白你的a.b.(-1) 语法。这不起作用。
  • 您是在使用 numpy 数组还是只是一个普通的 Python 列表?这是两种不同的数据结构
  • 你能描述一下你想如何在优化问题中使用数组吗?

标签: python arrays numpy optimization


【解决方案1】:

Python 有以下语法:

array_name = [some_value]*length

它创建一个数组,其中填充了一些具有指定长度的值

那就试试吧:

a = [None]*len(b)

或者如果你不想改变类型:

a=[0]*len(b)

作为替代使用 numPy 数组

【讨论】:

    【解决方案2】:

    您可以通过以下方式进行:

    import numpy as np
    
    b0 = np.array([1,3,4,2,5])
    a = np.array([0]*b0.shape[0])
    a.shape
    

    输出

    (5,)
    

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 2016-04-08
      • 2021-06-15
      • 2011-08-04
      • 1970-01-01
      相关资源
      最近更新 更多