为什么这两个阵列具有相同的形状?

时间:2015-09-29 20:23:49

标签: python numpy scipy

所以我试图创建一个数组,然后按名称访问列。所以我想出了类似的东西:

import numpy as np
data = np.ndarray(shape=(3,1000),
                  dtype=[('x',np.float64),
                  ('y',np.float64),
                  ('z',np.float64)])

我很困惑为什么

data.shape 

data['x'].shape

两者都回来了(3,1000),当我试图填充我的数据字段时,这会引起我的问​​题

data['x'] = xvalues

其中xvalues的形状为(1000,)。有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

之所以出现同样原因,是因为“数据”的结构比形状所显示的结构要多一些。

示例:

data[0][0] returns:  (6.9182540632428e-310,6.982540633353e-310,6.9182540633851e-310)

data['x'][0][0]: 返回6.9182540632427993e-310

因此数据包含3行和1000列,其元素是3元组。

data ['x']是3行和1000列所有组合的元组的第一个元素,因此形状也是(3,1000)。

答案 1 :(得分:0)

只需设置.. String q = "SELECT user FROM admin_dba.Empolyees where id < ? and id > 25"; try { con = DataSourceUtils.getConnection(dataSource); pst = con.prepareStatement(q); pst.setLong(1, id); rs = pst.executeQuery(); ... 即可。三重dtype将创建3列。