Python 如何使用返回numpy 1D数组的函数填充numpy 2D数组

Python 如何使用返回numpy 1D数组的函数填充numpy 2D数组,python,arrays,numpy,Python,Arrays,Numpy,我有类似的功能 def predictions(degree): some magic, return an np.ndarray([0..100]) 我想为几个度值调用这个函数,并使用它填充一个更大的np.ndarray(n=2),用函数的结果填充每一行。这似乎是一项简单的任务,但不知何故,我无法让它工作。我试过了 for deg in [1,2,4,8,10]: np.append(result, predictions(deg),axis=1) 结果是一个np.empty

我有类似的功能

def predictions(degree):
  some magic,
  return an np.ndarray([0..100])
我想为几个度值调用这个函数,并使用它填充一个更大的np.ndarray(n=2),用函数的结果填充每一行。这似乎是一项简单的任务,但不知何故,我无法让它工作。我试过了

for deg in [1,2,4,8,10]:
   np.append(result, predictions(deg),axis=1)
结果是一个
np.empty(100)
。但在
单例数组中失败的数组(1)不能被视为有效集合。


我无法从函数中获取
它只适用于坐标元组,文档中也没有不规则的度数列表。

在你变老变聪明之前,不要使用
np.ndarray
!如果不重新阅读文档,我甚至无法使用它

arr1d = np.array([1,2,3,4,5])
是从数字列表构造一维数组的正确方法

也不要使用
np.append
。我甚至不会添加“更老更聪明”的限定。它不能在适当的地方工作;在循环中使用时速度较慢

从1d阵列构建2阵列的一个好方法是:

alist = []
for i in ....:
    alist.append(<alist or 1d array>)
arr = np.array(alist)
这是一个列表列表

或列表:

np.array([predictions(i) for i in range(10)])

同样,
predictions
必须返回相同长度的数组或列表。

不要使用
np.ndarray
,除非你年龄更大、更聪明!如果不重新阅读文档,我甚至无法使用它

arr1d = np.array([1,2,3,4,5])
是从数字列表构造一维数组的正确方法

也不要使用
np.append
。我甚至不会添加“更老更聪明”的限定。它不能在适当的地方工作;在循环中使用时速度较慢

从1d阵列构建2阵列的一个好方法是:

alist = []
for i in ....:
    alist.append(<alist or 1d array>)
arr = np.array(alist)
这是一个列表列表

或列表:

np.array([predictions(i) for i in range(10)])

同样,
predictions
必须返回相同长度的数组或列表。

append
位于numpy的无聊部分。在这里,您可以提前知道形状

len_predictions = 100

def predictions(degree):
    return np.ones((len_predictions,))

degrees = [1,2,4,8,10]
result = np.empty((len(degrees), len_predictions))
for i, deg in enumerate(degrees):
    result[i] = predictions(deg)

如果您想以某种方式存储学位,可以使用自定义数据类型

append
位于numpy的枯燥部分。在这里,您可以提前知道形状

len_predictions = 100

def predictions(degree):
    return np.ones((len_predictions,))

degrees = [1,2,4,8,10]
result = np.empty((len(degrees), len_predictions))
for i, deg in enumerate(degrees):
    result[i] = predictions(deg)

如果要以某种方式存储度,可以使用自定义数据类型

单例数组(1)错误消息源于函数预测。`result=np.array([predictions(1)、predictions(2)、predictions(4)、predictions(8)]`工作正常,但不是很好。`singleton数组(1)错误消息源于函数预测。`result=np。数组([predictions(1)、predictions(2)、predictions(4)、predictions(8)]`正在工作,但不是很好。这是+1的方式<代码>附加很昂贵(任何东西都可以),尽量避免。这是+1的方法
append
很贵(任何东西都可以),尽量避免。我太老了,不能再聪明了:-)但是你的回答帮助了我。ndarray不是一个自由的选择,而是一个强制性的锻炼结果。我(美学上)喜欢列表理解,但不确定它有多贵?(但性能不是我的首要任务)。列表理解通常比使用append的等效循环快一点。解释器构造了一组更紧密的字节码。我太老了,不能再聪明了:-)但是你的回答帮助了我。ndarray不是一个自由的选择,而是一个强制性的锻炼结果。我(美学上)喜欢列表理解,但不确定它有多贵?(但性能不是我的首要任务)。列表理解通常比使用append的等效循环快一点。解释器构造一组更紧密的字节码。