99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)大數(shù)據(jù)時(shí)代在numpy中如何合并不同維數(shù)的array?
在numpy中如何合并不同維數(shù)的array?
2023-04-26
收藏

在NumPy中,有很多不同的方法可以用來(lái)合并具有不同維度的數(shù)組。以下是一些常見的合并函數(shù):

  1. concatenate:將兩個(gè)或多個(gè)數(shù)組沿著指定的軸連接起來(lái)。
  2. stack:將兩個(gè)或多個(gè)數(shù)組沿著新的軸堆疊起來(lái)。
  3. hstack:水平堆疊兩個(gè)或多個(gè)數(shù)組(在第二個(gè)軸上)。
  4. vstack:垂直堆疊兩個(gè)或多個(gè)數(shù)組(在第一個(gè)軸上)。

下面我們將分別討論每個(gè)函數(shù)的使用和示例。

  1. concatenate函數(shù)

concatenate函數(shù)可以將兩個(gè)或多個(gè)數(shù)組沿著指定的軸連接起來(lái)。它的語(yǔ)法如下:

numpy.concatenate((a1, a2, ...), axis=0, out=None)

其中:

  • a1, a2, …:要連接的數(shù)組序列。
  • axis:沿著它連接數(shù)組的軸,默認(rèn)為0。
  • out:可選參數(shù),如果提供了此參數(shù),則返回結(jié)果將存儲(chǔ)在此位置。

下面是一個(gè)將兩個(gè)數(shù)組沿著第一個(gè)軸連接在一起的示例:

import numpy as np

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])

c = np.concatenate((a, b), axis=0)

print(c)
#輸出:[[1 2]
#     [3 4]
#     [5 6]]
  1. stack函數(shù)

stack函數(shù)可以將兩個(gè)或多個(gè)數(shù)組沿著新的軸堆疊起來(lái)。它的語(yǔ)法如下:

numpy.stack(arrays, axis=0, out=None)

其中:

  • arrays:要堆疊的數(shù)組序列。
  • axis:新軸的位置,默認(rèn)為0。
  • out:可選參數(shù),如果提供了此參數(shù),則返回結(jié)果將存儲(chǔ)在此位置。

下面是一個(gè)將兩個(gè)數(shù)組在第三個(gè)維度上堆疊在一起的示例:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

c = np.stack((a, b), axis=2)

print(c)
#輸出:[[[1 4]
#        [2 5]
#        [3 6]]]
  1. hstack函數(shù)

hstack函數(shù)可以水平堆疊兩個(gè)或多個(gè)數(shù)組(在第二個(gè)軸上)。它的語(yǔ)法如下:

numpy.hstack(tup)

其中:

  • tup:要堆疊的數(shù)組序列。

下面是一個(gè)將兩個(gè)數(shù)組在第二個(gè)維度上堆疊在一起的示例:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

c = np.hstack((a, b))

print(c)
#輸出:[1 2 3 4 5 6]
  1. vstack函數(shù)

vstack函數(shù)可以垂直堆疊兩個(gè)或多個(gè)數(shù)組(在第一個(gè)軸上)。它的語(yǔ)法如下:

numpy.vstack(tup)

其中:

  • tup:要堆疊的數(shù)組序列。

下面是一個(gè)將兩個(gè)數(shù)組在第一個(gè)維度上堆疊在一起的示例:

import numpy as np

a = np.array([[1], [2], [3]])
b = np.array([[4], [5], [6]])

c = np.vstack((a, b))

print(c)
#輸出:[[1]
#      [2]
#      [3]
#      [4]
#      [5]
#      [6]]

總結(jié)

NumPy提供了多種方法來(lái)合并不同維度的數(shù)組。使用函數(shù)concatenate、stack、hstack和vstack,我們可以輕松地將數(shù)組沿著任意軸連接起來(lái)。無(wú)論您需要在機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)或其他領(lǐng)域中進(jìn)行哪些操作,這些功能

將會(huì)非常有用。此外,這些函數(shù)還可以與其他NumPy功能一起使用,例如切片、索引和廣播,以實(shí)現(xiàn)更復(fù)雜的操作。

值得注意的是,在使用這些函數(shù)時(shí)需要注意維度的匹配。如果要沿著某個(gè)軸連接多個(gè)數(shù)組,則它們?cè)谠撦S上的形狀必須相同。否則會(huì)拋出ValueError異常。

此外,這些函數(shù)還可以接受不同類型的數(shù)組作為輸入,并嘗試進(jìn)行類型轉(zhuǎn)換以匹配所有數(shù)組的dtype。這可能會(huì)導(dǎo)致在性能方面的一些損失,因此最好盡量避免將不同類型的數(shù)組合并在一起。

總之,NumPy提供了強(qiáng)大而靈活的功能來(lái)合并不同維度的數(shù)組。無(wú)論您要執(zhí)行什么樣的任務(wù),都可以使用這些函數(shù)來(lái)實(shí)現(xiàn)所需的操作。同時(shí),使用這些函數(shù)時(shí)需要注意維度匹配和類型轉(zhuǎn)換的問題,以確保程序的正確性和效率。

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }