未知大小的数组

时间:2017-12-18 16:22:45

标签: python arrays shape

我将.CSV中的数据提取到数组中,如下所示:

my_data = genfromtxt('nice.csv', delimiter='')
a = np.array(my_data)       
然后我尝试建立数组的大小和形状,因此:

size_array=np.size(a)
shape_array=np.shape(a) 

现在,我想生成一个形状和大小相同的数组,然后执行一些乘法运算。我遇到的麻烦是生成正确大小的数组。我试过这个:

D = np.empty([shape_array,])

我收到错误:

  

“tuple”对象不能被解释为索引“。

经过调查,我的数组的形状为(248L,)。请...如何以合理的格式获得此阵列?

感谢。

1 个答案:

答案 0 :(得分:2)

shape_array=np.shape(a)行创建了一个tuple形状,这是np.empty的预期输入。

表达式[shape_array,]tuple,包含在list中,这似乎是多余的。直接使用shape_array

d = np.empty(shape_array)

在相关的说明中,您可以使用函数np.empty_like更有效地获得与原始数据相同的形状和类型的数组:

d = np.empty_like(a)

如果您只想使用形状和大小,则在调用np.sizenp.shape后,实际上无需将它们存储在单独的变量中。直接使用np.ndarray的相应属性更为惯用:

d = np.empty(a.shape)