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

标签 python arrays numpy

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

例如

 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/

相关文章:

javascript - 如何在网站上使用 BeautifulSoup 或 Slimit 从 javascript 变量输出电子邮件地址

python - 在 Pandas 数据框中的列中查找成对重叠

python - 在ubuntu 14.04上安装wxpython

arrays - 如何在Lua中制作2D阵列?

python - 标准化 scipy.ndimage.filters.correlate

python - 矩阵翻转水平或垂直

Python:仅使用 1 个外生变量执行数百万个简单线性回归的最快方法

c - 程序无法识别 if-else 语句中的字符输入

javascript - 使用 [].filter.call 的这段代码有什么作用?

Python:用不同的数字替换数组中的每个数字