91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

numpy如何實現數組合并和矩陣拼接

發布時間:2021-03-22 12:49:47 來源:億速云 閱讀:505 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關numpy如何實現數組合并和矩陣拼接的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

Numpy中提供了concatenate,append, stack類(包括hsatck、vstack、dstack、row_stack、column_stack),r_和c_等類和函數用于數組拼接的操作。

各種函數的特點和區別如下標:

concatenate提供了axis參數,用于指定拼接方向
append默認先ravel再拼接成一維數組,也可指定axis
stack提供了axis參數,用于生成新的維度
hstack水平拼接,沿著行的方向,對列進行拼接
vstack垂直拼接,沿著列的方向,對行進行拼接
dstack沿著第三個軸(深度方向)進行拼接
column_stack水平拼接,沿著行的方向,對列進行拼接
row_stack垂直拼接,沿著列的方向,對行進行拼接
r_垂直拼接,沿著列的方向,對行進行拼接
c_水平拼接,沿著行的方向,對列進行拼接

直接合并

將兩個一維數組合并成一個二維數組:

import torch
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(0,15,0.1)
b = 1.088 * a + 0.638 + np.random.rand() * 10

print(a.shape,b.shape)
points = np.array([a,b])
print(points.shape)


(150,) (150,)
(2, 150)

append拼接

append(arr, values, axis=None)
arr待合并的數組的復制(特別主頁是復制,所以要多耗費很多內存)
values用來合并到上述數組復制的值。如果指定了下面的參數axis的話,則這些值必須和arr的shape一致(shape[axis]之外都相等),否則的話,則沒有要求。
axis要合并的軸.
>>> import numpy as np
>>> ar1 = np.array([[1,2,3], [4,5,6]])
>>> ar2 = np.array([[7,8,9], [11,12,13]])

>>> np.append(ar1, ar2) # 先ravel扁平化再拼接,所以返回值為一個1維數組
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13])

>>> np.append(ar1, ar2, axis=0)  # 沿第一個軸拼接,這里為行的方向 
array([[ 1, 2, 3],
  [ 4, 5, 6],
  [ 7, 8, 9],
  [11, 12, 13]])

>>> np.append(ar1, ar2, axis=1)  # 沿第二個軸拼接,這里為列的方向 
array([[ 1, 2, 3, 7, 8, 9],
  [ 4, 5, 6, 11, 12, 13]])

concatenate拼接

concatenate(a_tuple, axis=0, out=None)
a_tuple:對需要合并的數組用元組的形式給出
axis待合并的軸,默認為0
 >>> import numpy as np
>>> ar1 = np.array([[1,2,3], [4,5,6]])
>>> ar2 = np.array([[7,8,9], [11,12,13]])
>>> ar1
array([[1, 2, 3],
  [4, 5, 6]])
>>> ar2
array([[ 7, 8, 9],
  [11, 12, 13]])

>>> np.concatenate((ar1, ar2)) # 這里的第一軸(axis 0)是行方向
array([[ 1, 2, 3],
  [ 4, 5, 6],
  [ 7, 8, 9],
  [11, 12, 13]])

>>> np.concatenate((ar1, ar2),axis=1) # 這里沿第二個軸,即列方向進行拼接
array([[ 1, 2, 3, 7, 8, 9],
  [ 4, 5, 6, 11, 12, 13]])

>>> ar3 = np.array([[14,15,16]]) # shape為(1,3)的2維數組
>>> np.concatenate((ar1, ar3)) # 一般進行concatenate操作的array的shape需要一致,當然如果array在拼接axis方向的size不一樣,也可以完成
>>> np.concatenate((ar1, ar3)) # ar3雖然在axis0方向的長度不一致,但axis1方向上一致,所以沿axis0可以拼接
array([[ 1, 2, 3],
  [ 4, 5, 6],
  [14, 15, 16]])
>>> np.concatenate((ar1, ar3), axis=1) # ar3和ar1在axis0方向的長度不一致,所以報錯

hstack

>>> np.hstack((ar1,ar2)) # 水平拼接,沿著行的方向,對列進行拼接
array([[ 1, 2, 3, 7, 8, 9],
  [ 4, 5, 6, 11, 12, 13]])

vstack

>>> np.vstack((ar1,ar2)) # 垂直拼接,沿著列的方向,對行進行拼接
array([[ 1, 2, 3],
  [ 4, 5, 6],
  [ 7, 8, 9],
  [11, 12, 13]])

vstack

>>> np.dstack((ar1,ar2)) # 對于2維數組來說,沿著第三軸(深度方向)進行拼接, 效果相當于stack(axis=-1)
array([[[ 1, 7],
  [ 2, 8],
  [ 3, 9]],
  [[ 4, 11],
  [ 5, 12],
  [ 6, 13]]])

column_stack和row_stack

>>> np.column_stack((ar1,ar2)) # 水平拼接,沿著行的方向,對列進行拼接
array([[ 1, 2, 3, 7, 8, 9],
  [ 4, 5, 6, 11, 12, 13]])

>>> np.row_stack((ar1,ar2)) # 垂直拼接,沿著列的方向,對行進行拼接
array([[ 1, 2, 3],
  [ 4, 5, 6],
  [ 7, 8, 9],
  [11, 12, 13]])

np.r_ 和np.c_

常用于快速生成ndarray數據

>>> np.r_[ar1,ar2]  # 垂直拼接,沿著列的方向,對行進行拼接
array([[ 1, 2, 3],
  [ 4, 5, 6],
  [ 7, 8, 9],
  [11, 12, 13]])
 
>>> np.c_[ar1,ar2] # 水平拼接,沿著行的方向,對列進行拼接
array([[ 1, 2, 3, 7, 8, 9],
  [ 4, 5, 6, 11, 12, 13]])

感謝各位的閱讀!關于“numpy如何實現數組合并和矩陣拼接”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠水县| 社旗县| 绥宁县| 秦皇岛市| 郑州市| 梁平县| 浦北县| 岑巩县| 郎溪县| 偏关县| 岗巴县| 泌阳县| 财经| 黄山市| 扶绥县| 扎鲁特旗| 宜宾县| 满城县| 四子王旗| 绥芬河市| 田东县| 道孚县| 祥云县| 九龙坡区| 无极县| 台东县| 顺平县| 东乌珠穆沁旗| 长兴县| 衢州市| 视频| 温泉县| 镇雄县| 安仁县| 鹿邑县| 杨浦区| 克拉玛依市| 开远市| 射阳县| 临夏市| 靖江市|