下面是numpy和pandas中数组的合并、拉直和重塑的详细攻略。
合并数组
在numpy中可以通过concatenate、hstack和vstack函数来实现数组的合并。
concatenate
concatenate函数可以将两个或多个数组沿着一个现有轴进行拼接。示例代码如下:
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
result = np.concatenate([arr1, arr2], axis=0)
print(result)
输出结果为:
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
hstack
hstack函数可以将两个或多个数组水平堆叠起来,也就是将它们沿着第二个轴(列)拼接。示例代码如下:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.hstack([arr1, arr2])
print(result)
输出结果为:
array([1, 2, 3, 4, 5, 6])
vstack
vstack函数可以将两个或多个数组垂直堆叠起来,也就是将它们沿着第一个轴(行)拼接。示例代码如下:
import numpy as np
arr1 = np.array([[1], [2], [3]])
arr2 = np.array([[4], [5], [6]])
result = np.vstack([arr1, arr2])
print(result)
输出结果为:
array([[1],
[2],
[3],
[4],
[5],
[6]])
拉直数组
在numpy和pandas中,可以通过flatten和ravel函数来实现数组的拉直。
flatten
flatten函数会返回一个两层嵌套的一维数组。示例代码如下:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
result = arr.flatten()
print(result)
输出结果为:
[1 2 3 4 5 6]
ravel
ravel函数会返回一个展开后的一维数组,但是和flatten函数不同的是,ravel函数返回的是原数组的视图,修改该数组会影响原数组。示例代码如下:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
result = arr.ravel()
print(result)
result[0] = 9
print(arr)
输出结果为:
[1 2 3 4 5 6]
[[9 2 3]
[4 5 6]]
重塑数组
在numpy和pandas中,可以通过reshape函数来实现数组的重塑。
reshape
reshape函数可以将一个数组重塑成行数和列数指定的形状,也就是改变数组的形状而不改变数组的数据。示例代码如下:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
result = arr.reshape((2, 3))
print(result)
输出结果为:
array([[1, 2, 3],
[4, 5, 6]])
示例说明
示例一
将两个数组在行方向上合并,并将结果重塑成3行4列的形状。
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
result = np.concatenate([arr1, arr2], axis=0)
result = result.reshape((3, 4))
print(result)
输出结果为:
array([[ 1, 2, 3, 7],
[ 4, 5, 6, 8],
[ 9, 10, 11, 12]])
示例二
将一个二维数组拉直成一维数组,并将该数组重塑成3行2列的形状。
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6]])
result = arr.ravel()
result = result.reshape((3, 2))
print(result)
输出结果为:
array([[1, 2],
[3, 4],
[5, 6]])
以上就是numpy和pandas中数组的合并、拉直和重塑的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:numpy和pandas中数组的合并、拉直和重塑实例 - Python技术站