Python在numpy数组中添加行/列的方法
给定一个Numpy数组,任务是根据要求向Numpy数组添加行/列。让我们看看Python中这个问题的几个例子。
在Numpy数组中添加列
方法1:使用np.append()
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# printing initial array
print("initial_array : ", str(ini_array));
# Array to be added as column
column_to_be_added = np.array([[1], [2], [3]])
# Adding column to array using append() method
arr = np.append(ini_array, column_to_be_added, axis=1)
# printing result
print ("resultant array", str(result))
输出:
initial_array : [[ 1 2 3]
[45 4 7]
[ 9 6 10]]
resultant array [[ 1 2 3 1]
[45 4 7 2]
[ 9 6 10 3]]
方法2:使用np.concatenate
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# Array to be added as column
column_to_be_added = np.array([[1], [2], [3]])
# Adding column to array using append() method
arr = np.concatenate([ini_array, column_to_be_added], axis=1)
# printing result
print ("resultant array", str(result))
输出:
resultant array [[ 1 2 3 1]
[45 4 7 2]
[ 9 6 10 3]]
方法3:使用np.insert()
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# Array to be added as column
column_to_be_added = np.array([[1], [2], [3]])
# Adding column to array using append() method
arr = np.insert(ini_array, 0, column_to_be_added, axis=1)
# printing result
print ("resultant array", str(result))
输出:
resultant array [[ 1 2 3 1]
[45 4 7 2]
[ 9 6 10 3]]
方法4:使用np.hstack()
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# Array to be added as column
column_to_be_added = np.array([1, 2, 3])
# Adding column to numpy array
result = np.hstack((ini_array, np.atleast_2d(column_to_be_added).T))
# printing result
print ("resultant array", str(result))
输出:
resultant array [[ 1 2 3 1]
[45 4 7 2]
[ 9 6 10 3]]
方法5:使用np.column_stack()
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# Array to be added as column
column_to_be_added = np.array([1, 2, 3])
# Adding column to numpy array
result = np.column_stack((ini_array, column_to_be_added))
# printing result
print ("resultant array", str(result))
输出:
resultant array [[ 1 2 3 1]
[45 4 7 2]
[ 9 6 10 3]]
在Numpy数组中添加行
方法1:使用np.r_
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# printing initial array
print("initial_array : ", str(ini_array));
# Array to be added as row
row_to_be_added = np.array([1, 2, 3])
# Adding row to numpy array
result = np.r_[ini_array,[row_to_be_added]]
# printing result
print ("resultant array", str(result))
输出:
initial_array : [[ 1 2 3]
[45 4 7]
[ 9 6 10]]
resultant array [[ 1 2 3]
[45 4 7]
[ 9 6 10]
[ 1 2 3]]
方法2:使用np.insert
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# Array to be added as row
row_to_be_added = np.array([1, 2, 3])
#last row
row_n = arr.shape[0]
arr = np.insert(ini_array,row_n,[row_to_be_added],axis= 0)
# printing result
print ("resultant array", str(result))
输出:
resultant array [[ 1 2 3]
[45 4 7]
[ 9 6 10]
[ 1 2 3]]
方法3:使用np.vstack()
import numpy as np
ini_array = np.array([[1, 2, 3], [45, 4, 7], [9, 6, 10]])
# Array to be added as row
row_to_be_added = np.array([1, 2, 3])
# Adding row to numpy array
result = np.vstack ((ini_array, row_to_be_added) )
# printing result
print ("resultant array", str(result))
输出:
resultant array [[ 1 2 3]
[45 4 7]
[ 9 6 10]
[ 1 2 3]]
方法4:使用numpy.append()
有时我们有一个空数组,我们需要在其中追加行。Numpy提供了使用numpy.append()函数向一个空的Numpy数组追加一行的功能。
例子1 :向一个空的二维数组添加新行
# importing Numpy package
import numpy as np
# creating an empty 2d array of int type
empt_array = np.empty((0,2), int)
print("Empty array:")
print(empt_array)
# adding two new rows to empt_array
# using np.append()
empt_array = np.append(empt_array, np.array([[10,20]]), axis=0)
empt_array = np.append(empt_array, np.array([[40,50]]), axis=0)
print("\nNow array is:")
print(empt_array)
Empty array:
[]
Now array is:
[[10 20]
[40 50]]
例子2 :向一个空的三维数组添加新行
# importing Numpy package
import numpy as np
# creating an empty 3d array of int type
empt_array = np.empty((0,3), int)
print("Empty array:")
print(empt_array)
# adding three new rows to empt_array
# using np.append()
empt_array = np.append(empt_array, np.array([[10,20,40]]), axis=0)
empt_array = np.append(empt_array, np.array([[40,50,55]]), axis=0)
empt_array = np.append(empt_array, np.array([[40,50,55]]), axis=0)
print("\nNow array is:")
print(empt_array)
Empty array:
[]
Now array is:
[[10 20 40]
[40 50 55]
[40 50 55]]
例子3 :向一个空的四维数组添加新的行
# importing Numpy package
import numpy as np
# creating an empty 4d array of int type
empt_array = np.empty((0,4), int)
print("Empty array:")
print(empt_array)
# adding four new rows to empt_array
# using np.append()
empt_array = np.append(empt_array, np.array([[100,200,400,888]]), axis=0)
empt_array = np.append(empt_array, np.array([[405,500,550,558]]), axis=0)
empt_array = np.append(empt_array, np.array([[404,505,555,145]]), axis=0)
empt_array = np.append(empt_array, np.array([[44,55,550,150]]), axis=0)
print("\nNow array is:")
print(empt_array)
Empty array:
[]
Now array is:
[[100 200 400 888]
[405 500 550 558]
[404 505 555 145]
[ 44 55 550 150]]