【问题标题】:Append columns to the beginning and end of a 2D array将列追加到二维数组的开头和结尾
【发布时间】:2018-11-25 15:34:43
【问题描述】:

我想取两个一维数组

Ne_initial = Ne[:,0]
Ne_final = Ne[:,-1]

并将它们作为第一行(Ne_initial)和最后一行(Ne_final)附加到现有的二维数组。我不确定如何做到这一点。有人可以帮忙吗?

【问题讨论】:

标签: python arrays numpy append


【解决方案1】:

您可以使用此代码:

my_2d_array = []

my_2d_array.insert(0, Ne_initial)
my_2d_array.append(Ne_final)

【讨论】:

  • 只有当二维数组为空时才有效,它不是。我的问题更多的是如何将这两个一维数组添加到预先存在的二维数组的开头和结尾
  • 如果对象不是列表,此方法也不起作用。我的对象是 np.arrays,而不是列表。
【解决方案2】:
import numpy as np 
a = np.array([[1,2],[3,4]]) 

print 'First array:' 
print a 
print '\n'  
b = np.array([[5,6],[7,8]]) 

print 'Second array:' 
print b 
print '\n'

print 'Vertical stacking:' 
c = np.vstack((a,b)) 
print c # creating a 2-D array
col1=np.array([2,3,4,5])
col2=np.array([1,1,1,1])
d=np.column_stack((a1,b2))
np.concatenate((d,c)) # adding back to existing array

【讨论】:

  • 我不得不稍微调整一下你的答案才能让它工作:我不得不使用 np.hstack 而不是 np.vstack,为了让它正常工作,我必须重塑初始和最终的一维数组所以它们的形状是 (#,1) 而不是 (#,)。有了这些编辑,这行得通!
【解决方案3】:

下面的例子应该完成你想要的:

在:

import numpy as np

existing2Darray = np.matrix([[8, 3, 6, 1],[2, 5, 4, 2],[7, 2, 5, 1]])
Ne_initial = existing2Darray[:,0]
Ne_last = existing2Darray[:,-1]

输出:

 [[8 3 6 1]
 [2 5 4 2]
 [7 2 5 1]]

[[8]
 [2]
 [7]]

[[1]
 [2]
 [1]]

在:

np.append(existing2Darray, Ne_initial, axis=1))

输出:

[[8 3 6 1 8]
 [2 5 4 2 2]
 [7 2 5 1 7]]

在:

np.insert(existing2Darray, [0], Ne_last, axis=1))

输出:

[[1 8 3 6 1]
 [2 2 5 4 2]
 [1 7 2 5 1]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-05
    • 2011-05-26
    • 2011-11-07
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多