1. 程式人生 > >【python】numpy庫陣列拼接np.concatenate官方文件詳解與例項

【python】numpy庫陣列拼接np.concatenate官方文件詳解與例項

在實踐過程中,會經常遇到陣列拼接的問題,基於numpy庫concatenate是一個非常好用的陣列操作函式。

1、concatenate((a1, a2, …), axis=0)官方文件詳解

concatenate(...)
    concatenate((a1, a2, ...), axis=0)

    Join a sequence of arrays along an existing axis.

    Parameters
    ----------
    a1, a2, ... : sequence of array_like
        The arrays must have the
same shape, except in the dimension corresponding to `axis` (the first, by default). axis : int, optional The axis along which the arrays will be joined. Default is 0. Returns ------- res : ndarray The concatenated array. See Also -------- ma.concatenate : Concatenate function
that preserves input masks.
array_split : Split an array into multiple sub-arrays of equal or near-equal size. split : Split array into a list of multiple sub-arrays of equal size. hsplit : Split array into multiple sub-arrays horizontally (column wise) vsplit : Split array into
multiple sub-arrays vertically (row wise) dsplit : Split array into multiple sub-arrays along the 3rd axis (depth). stack : Stack a sequence of arrays along a new axis. hstack : Stack arrays in sequence horizontally (column wise) vstack : Stack arrays in sequence vertically (row wise) dstack : Stack arrays in sequence depth wise (along third dimension)

2、Parameters引數

  • 傳入的引數必須是一個多個數組的元組或者列表

  • 另外需要指定拼接的方向,預設是 axis = 0,也就是說對0軸的陣列物件進行縱向的拼接(縱向的拼接沿著axis= 1方向);注:一般axis = 0,就是對該軸向的陣列進行操作,操作方向是另外一個軸,即axis=1。

In [23]: a = np.array([[1, 2], [3, 4]])

In [24]: b = np.array([[5, 6]])

In [25]: np.concatenate((a, b), axis=0)
Out[25]:
array([[1, 2],
       [3, 4],
       [5, 6]])
  • 傳入的陣列必須具有相同的形狀,這裡的相同的形狀可以滿足在拼接方向axis軸上陣列間的形狀一致即可

如果對陣列物件進行 axis= 1 軸的拼接,方向是橫向0軸,a是一個2*2維陣列,axis= 0軸為2,b是一個1*2維陣列,axis= 0 是1,兩者的形狀不等,這時會報錯

In [27]: np.concatenate((a,b),axis = 1)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-27-aa1228decc36> in <module>()
----> 1 np.concatenate((a,b),axis = 1)

ValueError: all the input array dimensions except for the concatenation axis must match exactly

將b進行轉置,得到b為2*1維陣列:

In [28]: np.concatenate((a,b.T),axis = 1)
Out[28]:
array([[1, 2, 5],
       [3, 4, 6]])

相關推薦

pythonnumpy陣列拼接np.concatenate官方例項

在實踐過程中,會經常遇到陣列拼接的問題,基於numpy庫concatenate是一個非常好用的陣列操作函式。 1、concatenate((a1, a2, …), axis=0)官方文件詳解 concatenate(...) concatenate(

pythonNumpy中stack(),hstack(),vstack()函數

一起 int pan 控制 意思 name 體會 你們 如何 轉自 https://blog.csdn.net/csdn15698845876/article/details/73380803 這三個函數有些相似性,都是堆疊數組,裏面最難理解的應該就是stack()函數了,

pythonnumpyndarray多維陣列的的運算:np.abs(x)、np.sqrt(x)、np.modf(x)等

numpy庫提供非常便捷的陣列運算,方便資料的處理。 1、陣列與標量之間可直接進行運算 In [45]: a Out[45]: array([[ 0, 1, 2, 3], [

pythonnumpylinspace相同間隔取樣

linspace可以用來實現相同間隔的取樣; numpy.linspace(start,stop,num=50,endpoint=True,retstep=False, dtype=None) 返回num均勻分佈的樣本,在[start, stop]。 Parameters(引數): start :

網路app(retorfit2+RxJava)+javaweb(伺服器) retrofit2官方實踐

tjstudy:寫在前面,開發環境 app環境: android studio 2.1.1 minSdkVersion 14 targetSdkVersion 23 javaweb server 環境: MyEclipse 10 jdk 1.6

Linux程序間通訊(IPC)之訊號量測試用例

學習環境centos6.5 Linux核心2.6 程序間通訊概述 1. 程序通訊機制 一般情況下,系統中執行著大量的程序,而每個程序之間並不是相互獨立的,有些程序之間經常需要互相傳遞訊息。但是每個程序在系統中都有自己的地址空間,作業系統通過頁表

Linux程序間通訊(IPC)之共享記憶體測試用例

學習環境centos6.5 Linux核心2.6 什麼是共享記憶體 共享記憶體允許兩個或更多程序訪問同一塊記憶體。當一個程序改變了這塊記憶體中的內容的的時候,其他程序都會察覺到這個更改。 效率: 因為所有程序共享同一塊記憶體,共享記憶體在各種程序

pythonnumpy陣列(array)擴充(複製)方法repeat和tile的使用

但是很多情況下不需要使用,在進行矩陣加減運算的時候會自動複製 >>> a array([[1, 2],        [3, 4],        [5, 6]]) &g

numpy陣列拼接

【轉】https://blog.csdn.net/xiaodongxiexie/article/details/71774466 repo 用來記錄一些python技巧、書籍、學習連結等,歡迎star github地址 python中的科學計算包nump

Pythonnumpy陣列用dtype=float16初始化的坑

【Python坑系列】為了節約空間,使用numpy陣列時候採用了float16,結果發現精度遠遠不達標預設的floar64是最接近原本浮點數的a = 0.0001 * np.ones(10,np.flo

pythonfolium 繪製地圖點選框

使用folium 庫 生成 地圖網頁 folium 官網 import folium import pandas as pd def mark_map(data): """ 帶有標註的地圖 :param data: :return

pythonnumpy.datetime64( ) 時間和 datetime.datetime 互轉

首先定義幾個時間變數datetime、Timestamp、numpy.datetime64: import datetime import numpy as np import pandas as p

Pythonnumpy.append中有坑

numpy 往array裡新增一個元素 首先這裡p_arr為一個numpy的array,p_為一個元素 p_arr = np.concatenate((p_arr,[p_])) # 先將p_變成list形式進行拼接,注意輸入為一個tuple p_arr = np.append(p_arr

pythonnumpy中的tile函式

tile函式         在看機器學習實戰這本書時,遇到numpy.tile(A,B)函式,愣是沒看懂怎麼回事,裝了numpy模組後,實驗了幾把,原來是這樣子: 重複A,B次,這裡的B可以時int型別也可以是遠組型別。 >>> import num

PythonNumpy array

1。計算矩陣的size和dimension 兩個函式: array.ndim 和 np.size(array, axis) import numpy as np # 定義一個二維張量 X=np.array([[1,2,3,4], [5,6,7,8],

Pythonnumpy 中的 copy 問題

這篇文章本是我在 segmentfault 上的一個回答,但是越來越覺得有必要單獨拿出來,畢竟這個問題挺常見的。具體可參看 numpy 官方文件 。 正文 numpy關於copy有三種情況,完全不復制

PythonNumpy簡單入門

Numpy   Numpy是Python中科學計算的核心庫。Numpy提供了高效能的多維陣列物件,還有用於處理這些陣列的工具。 陣列   Numpy的主要資料型別是ndarray即多維陣列,可以用巢狀的Python列表中初始化numpy陣列,並使用方括號訪問元素。陣列具有以下幾個屬性:

pythonre 正則的一些過濾和把str拆分成list案例

0x01: 部分參考:https://www.cnblogs.com/edwardsun/p/4421773.html   match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]):  &n

Pythonnumpy中的sum函式的使用

sum() 沒有axis引數表示全部資料相加 axis=0,表示按列相加 axis=1,表示按行相加 a = array([[1,2,3],[4,5,6]]) print(a) b = sum(a) print (b) c = sum(a, axis=0) print(

Pythonnumpy快速入門

1、基本概念 numpy的主要內容是齊次多維陣列,是一張表,元素型別相同,通常是數字,索引為一個正整數構成的元組。在numpy中,陣列的維叫做axes,axes的個數叫做rank。例如,[1,2,1]是3D空間中的一個座標點,作為陣列,它是一維的,有一個axe