将一个一维数组转换为一个二维Numpy数组
这里我们将学习如何将1D NumPy转换为2D NumPy 使用两种方法。Numpy是一个Python包,由多维数组对象和一个操作或例程集合组成,用于对数组进行各种操作和处理。
使用reshape将一个一维数组转换为一个二维Numpy数组
这个包由一个名为numpy.reshape的函数组成,该函数用于将一个一维数组转换成所需尺寸的二维数组(n x m)。这个函数在不改变一维数组数据的情况下给出一个新的所需形状。
示例 1:
将一个一维数组转换成所需尺寸的二维数组(n x m)。
import numpy as np
# 1-D array having elements [1 2 3 4 5 6 7 8]
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
# Now we can convert this 1-D array into 2-D in two ways
# 1. having dimension 4 x 2
arr1 = arr.reshape(4, 2)
print ('After reshaping having dimension 4x2:')
print (arr1)
print ('\n')
# 2. having dimension 2 x 4
arr2 = arr.reshape(2, 4)
print ('After reshaping having dimension 2x4:')
print (arr2)
print ('\n')
输出:
After reshaping having dimension 4x2:
[[1 2]
[3 4]
[5 6]
[7 8]]
After reshaping having dimension 2x4:
[[1 2 3 4]
[5 6 7 8]]
示例 2:
让我们看看一个重要的观察,我们是否可以将一个一维数组重塑为任何二维数组。
import numpy as np
# 1-D array having elements [1 2 3 4 5 6 7 8]
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
# Print the 1-D array
print('Before reshaping:')
print(arr)
print('\n')
# let us try to convert into 2-D array having dimension 3x3
arr1 = arr.reshape(3, 3)
print('After reshaping having dimension 3x3:')
print(arr1)
print('\n')
输出:
这就得出结论,元素的数量应该等于尺寸的乘积,即3×3=9,但总元素=8。
示例 3:
另一个例子是,我们可以使用reshape方法而不指定其中一个维度的准确数字。只要传递-1作为数值,NumPy就会计算出这个数字。
import numpy as np
# 1-D array having elements [1 2 3 4 5 6 7 8]
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
# Print the 1-D array
print('Before reshaping:')
print(arr)
print('\n')
arr1 = arr.reshape(2, 2, -1)
print('After reshaping:')
print(arr1)
print('\n')
输出:
Before reshaping:
[1 2 3 4 5 6 7 8]
After reshaping:
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
使用numpy.reshape将一个一维数组转换为一个二维Numpy数组
这里,我们使用np.reshape将一个一维数组转换为二维数组。你可以用ncols除以你数组中的元素数。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
# np.reshape(A,(-1,ncols))
B = np.reshape(arr, (-1, 2))
print('2D Numpy array: \n', B)
输出:
2D Numpy array:
[[ 1 2]
[ 3 4]
[ 5 6]
[ 7 8]
[ 9 10]