我有一个numpy的数组,看起来像:
myArray = np.array([[1,2],[3]])
但是我不能弄平
In: myArray.flatten()
Out: array([[1, 2], [3]], dtype=object)
如果将数组在第二个轴上更改为相同的长度,则可以将其展平。
In: myArray2 = np.array([[1,2],[3,4]])
In: myArray2.flatten()
Out: array([1, 2, 3, 4])
我的问题是:
我可以使用诸如myArray.flatten()
数组的大小及其元素的长度之类的东西来获取输出array([1,2,3])
吗?
myArray
是一维 对象
数组。您的列表对象将仅使用flatten()
或保持相同顺序ravel()
。您可以用来hstack
按水平顺序堆叠数组:
>>> np.hstack(myArray)
array([1, 2, 3])
请注意,这基本上等效于使用concatenate
1的轴(
这在直觉上应该有意义 ):
>>> np.concatenate(myArray, axis=1)
array([1, 2, 3])
但是,如果您 没有 这个问题并且 可以 合并项目,则始终最好使用flatten()
或ravel()
提高性能:
In [1]: u = timeit.Timer('np.hstack(np.array([[1,2],[3,4]]))'\
....: , setup = 'import numpy as np')
In [2]: print u.timeit()
11.0124390125
In [3]: u = timeit.Timer('np.array([[1,2],[3,4]]).flatten()'\
....: , setup = 'import numpy as np')
In [4]: print u.timeit()
3.05757689476
Iluengo的答案还为您提供了有关为何无法使用flatten()
或ravel()
指定数组类型的更多信息。
我有这个问题: 您将获得一个整数 A 和一个整数 k 的数组。您可以将 A 的元素递减到 k 次,目标是生成一个元素都相等的连续子数组。返回可以用这种方式生成的最长的连续子数组的长度。 例如,如果 A 是 [1,7,3,4,6,5] 并且 k 是 6,那么您可以生成 [1,7,3,4-1,6-1-1-1,5-1-1] = [1,7,3,3,3,3],因此您将返回 4。 最佳解决方案是什么?
问题内容: 我有一个清单清单。每个子列表的长度在1到100之间。每个子列表在一组数据中的不同时间包含一个粒子ID。我想在给定的时间形成所有粒子ID的列表。为此,我可以使用以下方法: list2将包含list中每个子列表的首个元素。我不仅要对第一个元素执行此操作,还要对1到100之间的每个元素执行此操作。我的问题是,每个子列表都不存在元素号100(或66或77或其他)。 有什么方法可以创建列表列表,
问题内容: 我有不同长度的清单清单(例如),并想将其转换成整数数组。我了解多维数组中的“子”数组必须具有相同的长度。那么将上述示例中的列表转换成这样的数组(即用零完成)的最有效方法是什么? 问题答案: 您可以使用np.zeros创建一个numpy数组,并用列表元素填充它们,如下所示。 结果是
我有一个需要分解的spark数据帧,格式如下。我检查其他解决方案,比如这个。但是,在我的例子中,之前的之后的 或“after”。 我可以在两个单独的爆炸中执行此操作,其中我在每个爆炸中创建列,然后创建。 但是,我想知道是否有更优雅的方式来做到这一点。谢谢
如何设置textview中的所有行具有相同的字符长度? 这是sqlite数据库中的文本 这是Android的文本视图 我在main.class中的查询代码 db.open();光标c=db.getdescIntro(系,学位); 我的数据库.class 公共游标获取简介(字符串dep,字符串度){ 返回db.query("学术", new String[]{"desc","部门","acapdf"
我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?