主頁 > 知識庫 > Numpy ndarray 多維數(shù)組對象的使用

Numpy ndarray 多維數(shù)組對象的使用

熱門標簽:深圳網(wǎng)絡外呼系統(tǒng)代理商 申請辦個400電話號碼 騰訊地圖標注有什么版本 千呼ai電話機器人免費 400電話辦理費用收費 外呼系統(tǒng)前面有錄音播放嗎 柳州正規(guī)電銷機器人收費 鎮(zhèn)江人工外呼系統(tǒng)供應商 高德地圖標注字母

介紹

目前它是Python數(shù)值計算中最為重要的基礎(chǔ)包,將numpy的數(shù)組的對象作為數(shù)據(jù)交互的通用語,一般我們要充分理解好矩陣計算的原理,這需要你要有一些線性代數(shù)的基礎(chǔ)知識。在對數(shù)據(jù)處理、清洗、構(gòu)造子集、過濾、變換以及其他計算的過程快速的進行向量化計算,后續(xù)也會介紹R語言,因為R語言就是一個原生態(tài)基于向量化計算的編程語言。

Numpy的核心特征之一就是一個N維數(shù)組對象——ndarray,這是一個快速靈活的大型數(shù)據(jù)集容器,可以進行科學數(shù)值計算。

代碼操作

import numpy as np

導入好包之后,我們隨機生成一個2*3的數(shù)組,2行3列的隨機數(shù)組

data=np.random.randn(2,3)

對數(shù)組的簡單操作

data*10
 
>>array([[ 9.00839244, -17.67421607, -0.03125454],
  [ 19.79906711, -2.62145167, -12.55106031]])
 
data+data
 
>>array([[ 1.80167849, -3.53484321, -0.00625091],
  [ 3.95981342, -0.52429033, -2.51021206]])
 
data.shape
 
>>(2, 3)
 
data.dtype
 
>>dtype('float64')

生成ndarray

生成數(shù)組的最簡單的方法就是使用array函數(shù),對于傳入的類型可以是其他任意的序列,如你傳入一個列表,那么它就會接收這個列表并轉(zhuǎn)換為數(shù)組類型,如果傳入的是多個列表那么它就會接收多個,在線性代數(shù)里面我們叫這個是維度,比如下面的就是一個2行3列的矩陣。

data1=[[1,2,3],[4,5,6]]
 
arry1=np.array(data1)
 
arry1
 
>>array([[1, 2, 3],
  [4, 5, 6]])
 
arry1.ndim
 
>>2
 
arry1.shape
 
>>2, 3)

除了這個我們還可以使用其他的函數(shù)來創(chuàng)建數(shù)組,比如給定了長度和形狀類型就會一次性創(chuàng)建完畢,這里是創(chuàng)建了一個2*3的元素是1的數(shù)組

np.ones((2,3))
>>array([[1., 1., 1.],
  [1., 1., 1.]])

numpy里面也有像Python range()函數(shù)一樣的效果——np.arange(),操作效果和Python的range函數(shù)有異曲同工之妙,start,stop,step都是可設(shè)置的。

對角矩陣生成

ndarray的數(shù)據(jù)類型

如何查看數(shù)組的數(shù)據(jù)類型以及如何進行轉(zhuǎn)換,在numpy里面整型:int32,浮點型:float64.

Numpy 數(shù)組計算

基于numpy的數(shù)組計算在之前我也演示了一些,四則運算,加減乘除,以及一些數(shù)組運算,每一個數(shù)組與數(shù)組之間的計算都是元素相互對于的,并不是獨立的,這個是我們需要理解清楚的地方,有趣的是,我們需要比較兩個相同維數(shù)的數(shù)組,我們可以利用> = 來查看,它返回的是布爾值。

基礎(chǔ)索引和切片

在一維的數(shù)組里面,和Python列表里面的所有一樣,如果是高維的就有所不同了,就需要利用多重索引了,這里的變量和上面的一樣

如果產(chǎn)生了一個三位的數(shù)組,比如一個2*2*3的數(shù)組,我們按照索引,可以自動索引出來第一個的的數(shù)組

對于高維的數(shù)組的切片,我們需要注意的是,它的切片原理是按照數(shù)組里面的數(shù)組進行切片的,比如一個二維數(shù)組(2*3*2)的,我們需要取出每個單位數(shù)組里面的第一個元素,我們應該如何做

很明顯的我們可以看出多維數(shù)組的切片特點:我這里抽象化為列表的特點來解釋,比如我們可以把多維數(shù)組看做是一個列表里面的多個列表,也就是嵌套列表,然后我們按照索引來取,上述例子就是首先取出兩個大的數(shù)組,然后從這個兩個大的數(shù)組里面再去前兩個數(shù)組,最后取出索引為0的元素,這樣層層遞減,一步一步的索引是numpy索引的特點,之所以大數(shù)據(jù)技術(shù)之分析與計算,要用到矩陣計算的優(yōu)化,就是來源于它的分而治之的原理和特點。

布爾索引

其實就是對數(shù)組里面的值或元素進行比較,之中返回布爾值即可

上述例子就是產(chǎn)生了一個一維的字符串的數(shù)組,然后我們通過比較得出布爾值來獲取data的值,自然就獲取到data[0]的數(shù)組啦

注意在Python里面我們可以用and or來判斷,在numpy里面我們需要(and)|(or)來解決你的需求,記住喲

特殊索引

我們需要索引出不同位置的數(shù)組,這個時候我們還在一個一個的取出來嗎,當然不是我們可以利用特殊的索引來解決這個問題,比如下面的例子

下面我們來看看這個特殊索引的其他的用法

第一步我們我們按照索引取出對角線的元素,第二的一個我們想要得到一個二維的數(shù)組,我們?nèi)〕鲆粋€大數(shù)組里面索引位置分別為:1 5 7 2的一維數(shù)組然后我們利用索引位置的調(diào)換,把元素重新的進行了排序。

數(shù)組的轉(zhuǎn)換和換軸

我們隨機生成一個0-15的元素組成3*5的一個數(shù)組,然后利用.T屬性,如果學過線性代數(shù)的小伙伴一定對這個不陌生,矩陣的轉(zhuǎn)置:把行變成列,把列變成行。

總結(jié)

在numpy的數(shù)組操作我們現(xiàn)在其實并沒有發(fā)現(xiàn)這個對我們的數(shù)據(jù)分析有什么用處,這個很正常。就像我們之前學習線性代數(shù),我們發(fā)現(xiàn)這個矩陣對我們并沒什么用,但是當你使用MATLAB的時候才發(fā)現(xiàn)“書到用時方恨少”的道理。

到此這篇關(guān)于Numpy ndarray 多維數(shù)組對象的使用的文章就介紹到這了,更多相關(guān)Numpy ndarray 多維數(shù)組對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • numpy 聲明空數(shù)組詳解
  • Numpy將二維數(shù)組添加到空數(shù)組的實現(xiàn)
  • 在NumPy中創(chuàng)建空數(shù)組/矩陣的方法
  • NumPy實現(xiàn)ndarray多維數(shù)組操作
  • 如何在向量化NumPy數(shù)組上進行移動窗口
  • 如何將numpy二維數(shù)組中的np.nan值替換為指定的值
  • 解決numpy數(shù)組互換兩行及賦值的問題
  • python 將numpy維度不同的數(shù)組相加相乘操作
  • python numpy.power()數(shù)組元素求n次方案例
  • Python 用NumPy創(chuàng)建二維數(shù)組的案例
  • 淺談Python numpy創(chuàng)建空數(shù)組的問題

標簽:平頂山 郴州 烏蘭察布 合肥 烏蘭察布 哈爾濱 大慶 海南

巨人網(wǎng)絡通訊聲明:本文標題《Numpy ndarray 多維數(shù)組對象的使用》,本文關(guān)鍵詞  Numpy,ndarray,多維,數(shù)組,對象,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Numpy ndarray 多維數(shù)組對象的使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于Numpy ndarray 多維數(shù)組對象的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章