当前位置: 首页>Python>正文

python的numpy,NumPy-01

python的numpy,NumPy-01

NumPy-01

  • NumPy數組屬性
  • 創建NumPy數組
  • 數據類型對象
  • 索引

一.NumPy數組屬性

在 NumPy中,每一個線性的數組稱為是一個軸(axis),也就是維度(dimensions)。比如說,二維數組相當于是兩個一維數組,其中第一個一維數組中每個元素又是一個一維數組。所以一維數組就是 NumPy 中的軸(axis),第一個軸相當于是底層數組,第二個軸是底層數組里的數組。而軸的數量——秩,就是數組的維數。很多時候可以聲明 axis。axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作。

屬性說明
ndarray.ndim秩,即軸的數量或維度的數量
ndarray.shape數組的維度,對于矩陣,n 行 m 列
ndarray.size數組元素的總個數,相當于 .shape 中 n*m 的值
ndarray.dtypendarray 對象的元素類型
ndarray.itemsizendarray 對象中每個元素的大小,以字節為單位
ndarray.flagsndarray 對象的內存信息
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.ndim)   #數組的維數
print(a.shape)
a.shape = (3,2) #調整數組大小
print(a.shape)
print(a)
a=a.reshape(1,6) #調整數組大小
print(a)

運行結果:
2
(2, 3)
(3, 2)
[[1 2]
[3 4]
[5 6]]
[[1 2 3 4 5 6]]

二.創建NumPy數組

python的numpy。1.調用 NumPy 的 array 函數,numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0),參數說明如下:

名稱描述
object數組或嵌套的數列
dtype數組元素的數據類型(可選)
copy數組是否需要復制(可選)
order創建數組的樣式,C為行方向,F為列方向,A為任意方向(默認)
subok默認返回一個和基類類型一致的數組
ndmin指定生成數組的最小維度
import numpy as np 
a = np.array([1,2,3])  
print (a)

運行結果:
[1 2 3]

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
print (a)

運行結果:
[[1 2 3]
[4 5 6]
[7 8 9]]

import numpy as np
a = np.array([1,  2,  3], dtype =float)
print (a)

numpy.array、運行結果:
[1. 2. 3.]

2.numpy.empty 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組:numpy.empty(shape, dtype = float, order = ‘C’)

import numpy as np
a = np.empty([2,2], dtype = 'i1')
print (a)   #結果為隨機數,因為數組沒有初始化

運行結果:
[[ -1 -1]
[ -1 127]]

3.numpy.zeros,創建指定大小的數組,數組元素以 0 來填充:numpy.zeros(shape, dtype = float, order = ‘C’),有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。

import numpy as np
a = np.zeros((5), dtype=np.int) #整型
print(a)
b = np.zeros((2, 2), dtype=[('x', 'complex'), ('y', 'float')]) #自定義類型
print(b)

運行結果:
[0 0 0 0 0]
[[(0.+0.j, 0.) (0.+0.j, 0.)]
[(0.+0.j, 0.) (0.+0.j, 0.)]]

4.numpy.ones方法創建指定形狀的數組,數組元素以 1 來填充:numpy.ones(shape, dtype = None, order = ‘C’)

import numpy as np
a = np.ones(6)# 默認浮點型
print(a)
b = np.ones([3, 2], dtype='i4')# 自定義類型
print(b)

運行結果:
[1. 1. 1. 1. 1. 1.]
[[1 1]
[1 1]
[1 1]]

5.numpy.asarray(a, dtype = None, order = None),a可以是列表, 列表的元組, 元組, 元組的元組, 元組的列表,多維數組等,dtype表示數據類型(可選)。

import numpy as np
print(np.asarray([1,2,3,4,5]))#將列表轉換為 ndarray
print(np.asarray((1,2,3,4,5)))#將元組轉換為 ndarray

運行結果:
[1 2 3 4 5]
[1 2 3 4 5]

6.numpy.frombuffer 用于實現動態數組,接受 buffer 輸入參數,以流的形式讀入轉化成 ndarray 對象。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0),buffer可以是任意對象,會以流的形式讀入,dtype返回數組的數據類型(可選),count 讀取的數據數量,默認為-1,讀取所有數據,offset讀取的起始位置,默認為0。

import numpy as np
a = b'Hello World'
a = np.frombuffer(a, dtype =  'S1')
print (a)

運行結果:
[b’H’ b’e’ b’l’ b’l’ b’o’ b’ ’ b’W’ b’o’ b’r’ b’l’ b’d’]
7.numpy.fromiter(iterable, dtype, count=-1)方法從可迭代對象中建立 ndarray 對象,返回一維數組,iterable表示可迭代對象dtype 表示返回數組的數據類型,count讀取的數據數量,默認為-1,讀取所有數據。

import numpy as np
list = range(8) #創建列表對象
it = iter(list) #迭代器
a = np.fromiter(it, dtype='i1')
print(a)

運行結果:
[0 1 2 3 4 5 6 7]

8.numpy.arange(start, stop, step, dtype),根據 start 與 stop 指定的范圍以及 step 設定的步長,生成一個 ndarray,start 起始值,默認為0,stop終止值(不包含這個值),step步長默認為1。

import numpy as np
a = np.arange(1,100,30,dtype=float)
print (a)

運行結果:
[ 1. 31. 61. 91.]
9.np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None),函數用于創建一個一維數組,數組是一個等差數列構成的,start為序列的起始值,stop為序列的終止值(如果endpoint為true該值包含于數列中)num 為要生成的等步長的樣本數量,默認為50,endpoint 該值為 true 時,數列中中包含stop值,反之不包含,(默認是True)retstep 如果為 True 時,生成的數組中會顯示間距,反之不顯示。

import numpy as np
a = np.linspace(1, 20, 10, endpoint=False)
print(a)

運行結果:
[ 1. 2.9 4.8 6.7 8.6 10.5 12.4 14.3 16.2 18.1]

10.np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) 函數用于創建一個于等比數列,start 序列的起始值為:base **start,stop 序列的終止值為:base ** stop,如果endpoint為true,該值包含于數列中,num為要生成的等步長的樣本數量,默認為50,endpoint 該值為 true 時,數列中中包含stop值,反之不包含,默認是True,base是對數 log 的底數,dtype 為 ndarray 的數據類型。

import numpy as np
a = np.logspace(0,9,10,base=2)
print (a)

運行結果:
[ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]

三.數據類型對象

numpy.dtype(object, align, copy),object 要轉換為的數據類型對象,align 如果為 true,填充字段使其類似的結構體,copy 復制 dtype 對象 ,如果為 false,則是對內置數據類型對象的引用。

import numpy as np
# 'i1' 表示 int8
a = np.dtype('i1')
print(a)

運行結果:int8

import numpy as np
information = np.dtype([('height', 'i2'), ('weight', 'f4')])
a = np.array([(180.5, 67),(185.9, 75)], dtype =information)
print(a)

運行結果:(數據類型轉換為information的數據類型)
[(180, 67.) (185, 75.)]

四.索引

1.slice 函數

import numpy as np
a = np.arange(10)   #[0 1 2 3 4 5 6 7 8 9]
s = slice(2, 9, 3)  # 索引從2開始到索引9停止,間隔為3
print(a[s])

運行結果:[2 5 8]

2.冒號分隔切片參數 start:stop:step

import numpy as np
a = np.arange(10)  # [0 1 2 3 4 5 6 7 8 9]
b = a[5]           #返回與該索引相對應的單個元素
print(b)           #5
b=a[5:]            #表示從該索引開始以后的所有項都將被提取
print(b)           #[5 6 7 8 9]
b=a[5:8]           #提取兩個索引(不包括停止索引)之間的項
print(b)           #[5 6 7]

運行結果::
5
[5 6 7 8 9]
[5 6 7]

import numpy as np
a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print(a)
print(a[1:])
print(a[:2])
print(a[1:2])

運行結果:
[[1 2 3]
[3 4 5]
[4 5 6]]
[[3 4 5]
[4 5 6]]
[[1 2 3]
[3 4 5]]
[[3 4 5]]

import numpy as np
a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print(a)
print(a[1])
print(a[1:])
print(a[1][1:])
print(a[1][1:3])

運行結果:
[[1 2 3]
[3 4 5]
[4 5 6]]
[3 4 5]
[[3 4 5]
[4 5 6]]
[4 5]
[4 5]

切片還可以包括省略號 …,來使選擇元組的長度與數組的維度相同。 如果在行位置使用省略號,它將返回包含行中元素的 ndarray。

import numpy as np
a = np.array([[1, 2, 3], [3, 4, 5], [4, 5, 6]])
print(a[..., 1])   # 第2列元素
print(a[1, ...])   # 第2行元素
print(a[..., 1:])  # 第2列及剩下的所有元素

運行結果:
[2 4 5]
[3 4 5]
[[2 3]
[4 5]
[5 6]]

3.布爾索引

import numpy as np
x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print(x)
print(x[x > 6])#數組中大于6的元素

運行結果:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[ 7 8 9 10 11]

4.花式索引

import numpy as np
x = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(x[[1,2]])#輸出了第一行和第二行
print (x[np.ix_([0,2],[3,1,2])])#輸出了x[0][3],x[0][1],x[0][2]#     x[2][3],x[2][1],x[2][2]

運行結果:
[[ 5 6 7 8]
[ 9 10 11 12]]
[[ 4 2 3]
[12 10 11]]

https://www.zydui.com/af0dcVG8CAwVRClIF.html
>

相关文章:

  • python的numpy
  • numpyarray
  • numpyarray的參數
  • numpy生成數組
  • python numpy array
  • numpy在線運行
  • python中numpy
  • numpy中文
  • macbookpro怎么上外網,mac電腦連接內網和外網的方法(添加路由)
  • 查看oracle數據庫時間,oracle中日期自動補全,沒有數據自動補0
  • dtbo改刷新率,aosp編譯設備樹文件dtbo.img
  • vs code 編譯,超實用~使用 Xcode 編譯 Swift 源碼
  • 學生信息管理系統刪除功能,學生管理系統實現增刪改查
  • 簡述android源代碼的編譯過程,Android 編譯過程介紹,Android.mk 和 Android.bp 分析, 在源碼中編譯 AndroidStudi
  • 獲取通訊錄源碼,web通訊錄之通訊錄主界面
  • 回歸問題屬于什么問題,分類和回歸問題
  • vue iframe跨域,Vue3.0中WangEditor本地上傳圖片(解決跨域問題,后端返回問題)
  • springboot有哪些組件,使用IDEA開發springboot多module模塊項目的配置文件的共享讀取問題
  • 設計模式的優點是什么,設計模式的理解與舉例
  • 深度學習中的Benchmark,Baseline,Backbone和SOTA的比較說明舉例分析
  • 什么是XSS攻擊,Web 安全之 XSS 攻擊原理/分類/防御 詳解
  • miui11已適配機型,適配 iOS 12
  • 蘋果6s怎么更新ios13,蘋果 iOS 12.5.3 正式版發布
  • 微信自動發朋友圈,微信如何定時發送朋友圈?
  • 可以定時發朋友圈嗎,微信能不能定時發朋友圈 ?
  • windows2022數據中心版,Windows Server 2022
  • windows server core,Windows Service和Worker Service
  • 華為校園實習生招聘總結與感悟
  • 2018年華為實習生招聘三道編程題
  • hp8470p更換固態硬盤教程,HP 3PAR 8440存儲更換故障硬盤
  • 某存儲器芯片地址線為12,1. 若某存儲器芯片有地址線16條、數據線8條,則該芯片的存儲容量是( )位。————計算機組成原理
  • 計算存儲器芯片,構成地址40000000H到400FFFFFH且按字節編址的內存區域
  • 存儲器芯片的地址范圍,02.各類存儲器芯片和內存地址空間
  • 計劃的特點,任務計劃列表
  • 太陽輻射游戲任務攻略,游戲做任務的基本流程
  • 直接試玩游戲,游戲中任務的探討
  • echarts自定義圖例,【Android -- 開源庫】圖表繪制 HelloCharts 的基本使用
  • python圖表分析,Python模塊之chardir: 使用chartdir生成各種圖表