codecamp

NumPy 将不同的数组堆叠在一起

多个数组可以沿不同的轴堆叠在一起:

>>> a = np.floor(10 * rg.random((2, 2)))
>>> a
array([[9., 7.],
       [5., 2.]])
>>> b = np.floor(10 * rg.random((2, 2)))
>>> b
array([[1., 9.],
       [5., 1.]])
>>> np.vstack((a, b))
array([[9., 7.],
       [5., 2.],
       [1., 9.],
       [5., 1.]])
>>> np.hstack((a, b))
array([[9., 7., 1., 9.],
       [5., 2., 5., 1.]])

column_stack函数将一维数组作为列堆叠到二维数组中。它等效于hstack仅用于 2D 数组:

>>> from numpy import newaxis
>>> np.column_stack((a, b))  # with 2D arrays
array([[9., 7., 1., 9.],
       [5., 2., 5., 1.]])
>>> a = np.array([4., 2.])
>>> b = np.array([3., 8.])
>>> np.column_stack((a, b))  # returns a 2D array
array([[4., 3.],
       [2., 8.]])
>>> np.hstack((a, b))        # the result is different
array([4., 2., 3., 8.])
>>> a[:, newaxis]  # view `a` as a 2D column vector
array([[4.],
       [2.]])
>>> np.column_stack((a[:, newaxis], b[:, newaxis]))
array([[4., 3.],
       [2., 8.]])
>>> np.hstack((a[:, newaxis], b[:, newaxis]))  # the result is the same
array([[4., 3.],
       [2., 8.]])

另一方面,row_stack函数等效vstack于任何输入数组。实际上,row_stackvstack的别名:

>>> np.column_stack is np.hstack
False
>>> np.row_stack is np.vstack
True

通常,对于具有多于两个维度的数组, hstack沿着它们的第二个轴vstack堆叠,沿着它们的第一个轴堆叠,而且concatenate 允许一个可选参数给出应该发生连接的轴的编号。

笔记

在复杂的情况下,r_并且c_是用于通过沿一个轴堆叠号码创建阵列有用的。它们允许使用范围文字:

>>> np.r_[1:4, 0, 4]
array([1, 2, 3, 0, 4])

当与数组作为参数使用的, r_并且 c_是类似于 vstack和 hstack在它们的默认行为,但允许一个可选参数给轴沿其来连接的数量。

NumPy 改变数组的形状
NumPy 将一个数组拆分成几个较小的数组
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

NumPy 故障排除

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }