gpt4 book ai didi

python - 从不同的数组和数组/numpy 模块生成数组?

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:47 25 4
gpt4 key购买 nike

我想构建一个数组,其中包含基于数组当前值不断增加大小的数组。

例如

 current_array [100,33]  

 limit = (n//10) 

n=current_array(因此 limit_array=[10,3]

我希望我的输出数组是: [[1,...,10],[1,2,3]]

我想避免 for 循环;所以我想使用这样的范围:

 output_array=np.arange(current_array, limit_array, 2,dtype=I)

我知道这是不可能做到的,因为 arange 的前两个参数只是 float ,但是你会怎么做呢?

附属问题:

1) 我不确定 numpy 是否可以处理不同大小的数组。如果不是,我可以使用数组的数组( https://docs.python.org/3/library/array.html )来完成此操作。但我必须对这个数组进行数组乘法。
那么这会比同时处理 array.arrays 慢吗?或者我肯定应该找到另一个解决方案?

2)正如我所说,我有第三个 np.array [1,2,3] 我必须将前一个与它相乘。
我会得到类似的东西
[[[1,...,10]*1,[1,2,3]],[[1,...,10]*2,[2,4,6]],[[1,. ..,10]*3,[3,6,9]]] ?

编辑:我也想出了

 result_array=np.array()
result_array=np.append( np.arange(current_array, currentlimit, 1) for currentlimit in limit_array)

但不确定它是否有效

最佳答案

我认为您无法避免 for 循环,但您可以使用列表理解和 np.arange() ,这应该比正常情况快一点for 循环。示例-

np.array([np.arange(1, x+1) for x in limit_array])

演示 -

In [34]: import numpy as np

In [35]: ca = np.array([100,33])

In [39]: na = ca // 10

In [40]: na
Out[40]: array([10, 3], dtype=int32)

In [47]: result_array = np.array([np.arange(1, x+1) for x in na])

In [48]: result_array
Out[48]: array([array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), array([1, 2, 3])], dtype=object)
<小时/>

您也可以将列表理解用于您的第二个用例 -

In [55]: new_arr = np.array([1,2,3])

In [56]: new_result_array = np.array([result_array * x for x in new_arr])

In [57]:

In [57]: new_result_array
Out[57]:
array([[array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), array([1, 2, 3])],
[array([ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]), array([2, 4, 6])],
[array([ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30]), array([3, 6, 9])]], dtype=object)

关于python - 从不同的数组和数组/numpy 模块生成数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32582809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com