【发布时间】:2015-05-03 17:19:00
【问题描述】:
我正在使用 Numpy 来处理一些非常奇怪的表格数据。数据条目总是以每列 1200 个条目的形式出现。
但是,行数总是变化的。有时我导入的表有 12 行(即 numpy ndarray.shape = (12, 1200),总条目数为 1200 乘以 12,即 1200*12 = 14400。)有时表有 6 行(形状 = (6, 1200)),依此类推.这里没有模式。
列数始终为 1200,但行数始终变化。我不知道有多少行,所以我不能写出某种数学公式。
我想使用numpy.concatenate 将我给定的每个数组放入一维ndarray。 (对于我们上面的示例,这将是 shape = (1, 14400)。)
到目前为止,对于每个单独的数组,我必须将它单独分解为 N 个数组(N = 未知的行数),然后单独连接它们。
或者,为了编写for 语句,我必须找到行数,并为每个数组手动设置for 语句。
有更好的方法的想法吗?这需要永远。
编辑:抱歉,将“行”和“列”混合在一起。我重新输入了上面的帖子以反映这一点。是的,数组的形状始终为(n, 1200). So, the format is(rows, columns)`,并且列始终为 1200。
进一步的问题:我关于numpy.reshape 的问题是数据的顺序是否改变了。那么,对于一个有 6 行,形状 (6, 1200) 的数组,numpy.reshape() 是否会返回一个数组形状 (1, 72000) 以保留原始顺序?也就是说,
newarray = array([row 1, row 2, row 3, row 4, row 5, row 6])
?
【问题讨论】:
-
更直接地说,他说“行数总是变化”和“行数始终是1200”。
-
您的描述中似乎混合了行和列。数组的形状是否一致
(n,1200)? -
@hpaulji 是的,数组的形状一致为
(n, 1200). So, the format is(rows, columns)`,列一致为 1200。
标签: python arrays algorithm numpy