日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(数据分析三板斧)第一斧Numpy-第二节:生成数组、数组属性和切片

發(fā)布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (数据分析三板斧)第一斧Numpy-第二节:生成数组、数组属性和切片 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 部分參考:菜鳥教程

文章目錄

  • 一:生成數(shù)組
    • (1)由底層ndarray構(gòu)造器創(chuàng)建:np.arrary()
    • (2)其他創(chuàng)建方法
    • (3)特殊數(shù)組創(chuàng)建方法
  • 二:數(shù)組屬性
    • (1)N維數(shù)組-ndarray
    • (2)軸的概念(axis)
    • (3)ndarray屬性
  • 三:索引和切片
    • (1)基本操作
    • (2)高級操作

一:生成數(shù)組

(1)由底層ndarray構(gòu)造器創(chuàng)建:np.arrary()

上一節(jié)簡單說明了array()函數(shù)的用法,其完整形式如下

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
  • object :數(shù)組或嵌套的數(shù)列
  • dtype :數(shù)組元素的數(shù)據(jù)類型,可選
  • copy :對象是否需要復制,可選
  • order :創(chuàng)建數(shù)組的樣式,C為行方向,F為列方向,A為任意方向(默認)
  • subok:默認返回一個與基類類型一致的數(shù)組
  • ndmin:指定生成數(shù)組的最小維度
a = np.array([[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9]], dtype=complex) print(a)

(2)其他創(chuàng)建方法

①:可以使用fill()方法將數(shù)組設定為指定值

  • 注意:如果fill()中傳入的數(shù)據(jù)類型和原有數(shù)組中數(shù)據(jù)的類型不一致時,會向原有的類型發(fā)生轉(zhuǎn)換
a = np.zeros(10, dtype=int) a.fill(5) # 全部填充為5 print(a)

(3)特殊數(shù)組創(chuàng)建方法

①:生成全0或全1的數(shù)組

  • 默認是浮點數(shù),如果需要其他類型,使用dtype指定即可
a = np.zeros(5) # 5個元素 b = np.ones(5, dtype=int) # 5個元素 print(a) print(b)


②:使用arange()生成整數(shù)序列,它會根據(jù) start 與 stop 指定的范圍以及 step 設定的步長,生成一個 ndarray,它的基本格式如下

numpy.arange(start, stop, step, dtype)
  • start:起始值,默認為0
  • stop:終止值(不包含)
  • step:步長,默認為1
  • dtype:數(shù)據(jù)類型

比如

a = np.arange(0, 10, 2, int) print(a)


③:使用linspace()生成等差數(shù)列,它的基本格式如下

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
  • start:序列的起始值
  • stop:序列的終止值,如果endpoint為true,該值包含于數(shù)列中
  • num:要生成的等步長的樣本數(shù)量,默認為50
  • endpoint:該值為 true 時,數(shù)列中包含stop值,反之不包含,默認是True
  • retstep:如果為 True 時,生成的數(shù)組中會顯示間距,反之不顯示
  • dtype:數(shù)據(jù)類型

比如

a = np.linspace(1, 10, 10) b = np.linspace(10, 20, 5, endpoint=False, dtype=int) # 不包含終止值 print(a) print(b)

④:使用random.rand()等函數(shù)生成隨機數(shù)

  • 讀者可自行查閱相關(guān)文檔,探索更多的隨機數(shù)生成方法
a = np.random.rand(5) b = np.random.randn(5) # 滿足正態(tài)分布 c = np.random.randint(1, 10, 10) # 10個隨機整數(shù) print(a) print(b) print(c)

二:數(shù)組屬性

(1)N維數(shù)組-ndarray

NumPy最核心的數(shù)據(jù)類型是N維數(shù)組The N-dimensional array (ndarray),可以看成homogenous(同質(zhì)) items的集合,與只密切相關(guān)的兩種類型是Data type objects (dtype)和Scalars

  • 數(shù)據(jù)類型對象(np.dtype):用來描述與數(shù)組對應的內(nèi)存區(qū)域如何使用。比如數(shù)據(jù)的類型、大小等
  • NumPy數(shù)據(jù)類型(scalar types):上一節(jié)已有介紹

如下是常見的1維、2維、3維數(shù)組


Numpy操作的對象就是數(shù)組,也即ndarray,這一點可以通過type()驗證

a = np.random.randint(1, 10, 10) # 10個隨機整數(shù) print(type(a))

(2)軸的概念(axis)

Numpy數(shù)組的維數(shù)稱之為秩(rank),秩表示軸的數(shù)量;在Numpy中每一個線性的數(shù)組稱為一個軸(axis)

類似于笛卡爾坐標系,簡單的二維坐標系只有xxx軸和yyy軸,使用它們可以平面空間中唯一確定一個位置


而Numpy中的軸指的就是行、列的方向

  • axis=0:表示沿著第 0 軸進行操作,即對每一列進行操作
  • axis=1:表示沿著第1軸進行操作,即對每一行進行操作

(3)ndarray屬性

屬性說明
ndarrary.ndim秩(軸的數(shù)量或者維度)
ndarray.shape數(shù)組的維度,對于矩陣,n 行 m 列
ndarray.size數(shù)組元素的總個數(shù),相當于 .shape 中 n*m 的值
ndarray.dtypendarray 對象的元素類型
ndarray.itemsizendarray 對象中每個元素的大小,以字節(jié)為單位
ndarray.flagsndarray 對象的內(nèi)存信息
ndarray.realndarray元素的實部
ndarray.imagndarray元素的虛部
a = np.zeros((3, 4, 2), dtype=int) # 三維數(shù)組 print(a.ndim) print(a.shape) print(a.size) print(a.dtype) print(a.itemsize) print(a.flags)# 結(jié)果 3 (3, 4, 2) 24 int32 4C_CONTIGUOUS : TrueF_CONTIGUOUS : FalseOWNDATA : TrueWRITEABLE : TrueALIGNED : TrueWRITEBACKIFCOPY : FalseUPDATEIFCOPY : False

另外注意flags 所列信息含義

三:索引和切片

  • 和Python中的list一樣,ndarray對象的內(nèi)容可以通過索引或切片來訪問和修改

(1)基本操作

①:最基本的索引訪問

a = np.random.randint(0, 10, size=[3, 3]) # 二維隨機整數(shù) print(a) print(a[0]) print(a[0][2])

修改也是沒有問題的

a = np.random.randint(0, 10, size=[3, 3]) # 二維隨機整數(shù) print(a) a[0] = [9, 9, 9] print(a)


②:切片可以通過start:stop:step來操作

a = np.random.randint(0, 10, size=[3, 3]) # 二維隨機整數(shù) print(a) print(a[0:2:1])

同樣支持負索引

a = np.random.randint(0, 10, size=[3, 3]) # 二維隨機整數(shù) print(a) print(a[-2::1])

(2)高級操作

  • 暫略

總結(jié)

以上是生活随笔為你收集整理的(数据分析三板斧)第一斧Numpy-第二节:生成数组、数组属性和切片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。