我有一个numpy数组:
arr=[[1] [2] [3]]
但我需要这个:
arr2= [1 2 3]
你要怎么做这个?我试着这样做:
arr2=np.empty(1) for i in range(len(arr)): arr2=np.append(arr2, arr[i][0])
但是它在arr2的开始给了我一个额外的,更小的数字,我不明白为什么。
myzjeezk1#
尝试切片:
arr = np.array([[1], [2], [3]]) arr[:, 0] >>> array([1, 2, 3])
语法[:, 0]表示 * 对于每个子数组,获取第一个元素 *。
[:, 0]
polkgigr2#
既然你从一个列表开始,并且想要一个列表结果,那么只需要使用一个列表解析。不需要numpy行李。
numpy
In [21]: alist = [[0],[1],[2]] In [22]: alist Out[22]: [[0], [1], [2]] In [23]: [x[0] for x in alist] Out[23]: [0, 1, 2]
至于开头的那个额外数字,看看你开头的内容:
In [24]: np.empty(1) Out[24]: array([1.e-08])
如果你在上面附加了什么,你仍然有多余的。np.empty(1)与[]不同(尽管该列表被称为空列表)。
np.empty(1)
[]
2条答案
按热度按时间myzjeezk1#
尝试切片:
语法
[:, 0]
表示 * 对于每个子数组,获取第一个元素 *。polkgigr2#
既然你从一个列表开始,并且想要一个列表结果,那么只需要使用一个列表解析。不需要
numpy
行李。至于开头的那个额外数字,看看你开头的内容:
如果你在上面附加了什么,你仍然有多余的。
np.empty(1)
与[]
不同(尽管该列表被称为空列表)。