从numpy 1D数组列表中创建numpy 2D数组

时间:2017-01-19 14:13:51

标签: python numpy

我正面临for i in range(0, FILESIZE - 19): if (((I_FILE[i] + 1 == I_FILE[i + 19]) or (I_FILE[i - 19] + 1 == I_FILE[i])) and I_FILE[i] < 60): ...do stuff... 数组的异常行为,同时尝试从一些numpy数组创建numpy 2D数组。以下是示例代码 -

numpy

我没想到这个输出。因此我厌倦了另一个代码,看起来如下 -

x = []
x.append(x1)
x.append(x2)
x.append(x3)
x = np.array(x)

print x1.shape, type(x1)
print x2.shape, type(x2)
print x3.shape, type(x3)
print  x.shape, type(x)
print x[0].shape, type(x[0])

(1318,) <type 'numpy.ndarray'>
(1352,) <type 'numpy.ndarray'>
(1286,) <type 'numpy.ndarray'>
(3,) <type 'numpy.ndarray'>
(1318,) <type 'numpy.ndarray'>

为什么,我在第一种情况下没有看到2d数组?

1 个答案:

答案 0 :(得分:1)

如果每个数组的长度相等,您确实会看到您期望的2d形状 - 正如您在评论中提到的那样,您应该相应地重新采样。

您当前构建的&#34;锯齿状阵列&#34;数组必须与常规Python列表类似,并且不支持.sum()之类的好东西。

使用类似的锯齿状数组

>>> x.sum()
ValueError: operands could not be broadcast together with shapes (4,) (3,) 

缺乏对锯齿状阵列的支持是因为NumPy针对具有固定维度的数字数组进行了优化。