访问NumPy中列的正确方法是什么?

时间:2018-03-31 13:50:19

标签: python arrays numpy

我无法弄清楚以下问题:

选择放置在4X3阵列角落的元素。所选项目的行索引为check = self.env['model_name'].search([]) for i in check: self.env.cr.execute("""where write_date<current_date and write_date >=current_date - interval '1 day'; """,) ab=self.env.cr.fetchone() print(ab,"::::::::::::::") [0, 0],而列索引为[3, 3][0, 2]。我的代码正确执行但我想知道如何表示列。在NumPy中访问列的正确方法是什么?

[0, 2]

2 个答案:

答案 0 :(得分:1)

我不太明白你想要什么。但也许这会有所帮助

In [79]: x = np.array([[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8],[ 9, 10, 11]]) 

打印显示x

In [80]: x
Out[80]: 
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])

使用高级索引进行角点选择:

In [81]: rows = np.array([[0,0],[3,3]])
    ...: cols = np.array([[0,2],[0,2]]) 
In [83]: x[rows, cols]
Out[83]: 
array([[ 0,  2],
       [ 9, 11]])

列的view(参见文档)(最后一篇):

In [85]: x[:, 2]
Out[85]: array([ 2,  5,  8, 11])

行的view

In [86]: x[2, :]
Out[86]: array([6, 7, 8])

答案 1 :(得分:-1)

查看表示的一种方法是将数组转换为pandas DataFrame

pd.DataFrame(x)

输出

    0   1   2
0   0   1   2
1   3   4   5
2   6   7   8
3   9   10  11

第一行只有三个元素是列索引,第一列有4个元素是行索引。这是对您的代码的替代

rows= [0,3]
columns= [0,2]
for i in itertools.product(rows, columns):
    print(x[i])