可视化numpy数组/矩阵

时间:2016-07-30 00:29:36

标签: python arrays numpy

我有一个返回列表的函数。我想我使用np.append将此列表添加为数组中的新行,我的意图如下:

list = 4 5 6

b = 1 2 3
b = np.append(b, list)

输出;

1 2 3
4 5 6

这不是我使用的代码(其间有很多混乱)。但我得到的输出是:

2016-06-01  PRINT [  99.86         99.928        99.9          99.875        99.8          89.7933
   97.60018333   98.903        99.928         0.2801201    98.95         98.93
   98.87         98.94         99.05         89.097        97.6712       98.87
   99.59          0.23538903   99.711        99.732        99.725        99.724
   99.769        89.777        98.12053333   99.68         99.88
    0.30333219   99.805        99.79         99.743        99.71         99.69
   89.7728       98.06653333   99.617        99.82          0.28981292
   99.882        99.879        99.865        99.84         99.9          89.9206
   98.29823333   99.82        100.08          0.31420778]

这是一个10列乘5行数组/矩阵还是50列/行数组?我觉得我在这里遗漏了一些东西 - 或者只是输出并没有真正显示出阵列的形状?

2 个答案:

答案 0 :(得分:3)

真实列表追加:

In [701]: alist = [4,5,6]
In [702]: b=[1,2,3]
In [703]: b.append(alist)
In [704]: b
Out[704]: [1, 2, 3, [4, 5, 6]]

错误的数组操作:

In [705]: anArray=np.array([4,5,6])
In [706]: b=np.array([1,2,3])
In [707]: b=np.append(b,anArray)
In [708]: b
Out[708]: array([1, 2, 3, 4, 5, 6])
In [709]: b.shape
Out[709]: (6,)

在这里,我将anArray连接到b,制作了更长的数组。

之前我已经说过了 - np.append不是一个好的功能。它看起来太像列表append,人们最终滥用它。要么他们错过了它返回一个新数组的事实,而不是就地修改。或者他们反复使用它。

这是收集列表或数组并将它们合并为一个

的首选方式
In [710]: alist = []
In [711]: b=np.array([1,2,3])  # could be b=[1,2,3]
In [712]: alist.append(b)
In [713]: b=np.array([4,5,6])   # b=[4,5,6]
In [714]: alist.append(b)
In [715]: alist
Out[715]: [array([1, 2, 3]), array([4, 5, 6])]
In [716]: np.array(alist)
Out[716]: 
array([[1, 2, 3],
       [4, 5, 6]])
In [717]: _.shape
Out[717]: (2, 3)

结果是2d数组。列表追加比数组append(它是真实数组连接)快得多。构建列表然后创建数组。

定义二维数组的最常用方法是列表列表:

In [718]: np.array([[1,2,3],[4,5,6]])
Out[718]: 
array([[1, 2, 3],
       [4, 5, 6]])

np.concatenate是加入数组和列表的另一种选择。如果可以更好地控制它们的连接方式,但是你必须注意输入的尺寸(你应该注意那些)。

有几个'堆栈'简化维度处理的函数stackhstackvstack和是append。值得查看他们的代码。

答案 1 :(得分:1)

你应该使用hstack或vstack

import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
np.vstack((a,b))

给出

array([[1, 2, 3],
       [4, 5, 6]])

np.hstack((a,b))

给出

array([1, 2, 3, 4, 5, 6])