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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中numpy.array_python中数组(numpy.array)的基本操作

發布時間:2024/4/18 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中numpy.array_python中数组(numpy.array)的基本操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文部分內容參考Daetalus的博客。

為什么要用numpy

Python中提供了list容器,可以當作數組使用。但列表中的元素可以是任何對象,因此列表中保存的是對象的指針,這樣一來,為了保存一個簡單的列表[1,2,3]。就需要三個指針和三個整數對象。對于數值運算來說,這種結構顯然不夠高效。

Python雖然也提供了array模塊,但其只支持一維數組,不支持多維數組,也沒有各種運算函數。因而不適合數值運算。

NumPy的出現彌補了這些不足。

(——摘自張若愚的《Python科學計算》)

import numpy as np

數組創建

## 常規創建方法

a = np.array([2,3,4])

b = np.array([2.0,3.0,4.0])

c = np.array([[1.0,2.0],[3.0,4.0]])

d = np.array([[1,2],[3,4]],dtype=complex) # 指定數據類型

print a, a.dtype

print b, b.dtype

print c, c.dtype

print d, d.dtype

[2 3 4] int32

[ 2. 3. 4.] float64

[[ 1. 2.]

[ 3. 4.]] float64

[[ 1.+0.j 2.+0.j]

[ 3.+0.j 4.+0.j]] complex128

## 創建數組的常用函數

print np.arange(0,7,1,dtype=np.int16) # 0為起點,間隔為1時可缺省(引起歧義下不可缺省)

print np.ones((2,3,4),dtype=np.int16) # 2頁,3行,4列,全1,指定數據類型

print np.zeros((2,3,4)) # 2頁,3行,4列,全0

print np.empty((2,3)) #值取決于內存

print np.arange(0,10,2) # 起點為0,不超過10,步長為2

print np.linspace(-1,2,5) # 起點為-1,終點為2,取5個點

print np.random.randint(0,3,(2,3)) # 大于等于0,小于3,2行3列的隨機整數

[0 1 2 3 4 5 6]

[[[1 1 1 1]

[1 1 1 1]

[1 1 1 1]]

[[1 1 1 1]

[1 1 1 1]

[1 1 1 1]]]

[[[ 0. 0. 0. 0.]

[ 0. 0. 0. 0.]

[ 0. 0. 0. 0.]]

[[ 0. 0. 0. 0.]

[ 0. 0. 0. 0.]

[ 0. 0. 0. 0.]]]

[[ 1.39069238e-309 1.39069238e-309 1.39069238e-309]

[ 1.39069238e-309 1.39069238e-309 1.39069238e-309]]

[0 2 4 6 8]

[-1. -0.25 0.5 1.25 2. ]

[[1 0 1]

[0 1 0]]

## 類型轉換

print float(1)

print int(1.0)

print bool(2)

print float(True)

1.0

1

True

1.0

數組輸出

從左到右,從上向下

一維數組打印成行,二維數組打印成矩陣,三維數組打印成矩陣列表

print np.arange(1,6,2)

print np.arange(12).reshape(3,4) # 可以改變輸出形狀

print np.arange(24).reshape(2,3,4)# 2頁,3行,4頁

[1 3 5]

[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]]

[[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]]

[[12 13 14 15]

[16 17 18 19]

[20 21 22 23]]]

基本運算

## 元素級運算

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

b = np.arange(4)

print a, b

print a-b

print a*b

print a**2

print 2*np.sin(a)

print a>2

print np.exp(a) # 指數

[1 2 3 4] [0 1 2 3]

[1 1 1 1]

[ 0 2 6 12]

[ 1 4 9 16]

[ 1.68294197 1.81859485 0.28224002 -1.51360499]

[False False True True]

[ 2.71828183 7.3890561 20.08553692 54.59815003]

## 矩陣運算(二維數組)

a = np.array([[1,2],[3,4]]) # 2行2列

b = np.arange(6).reshape((2,-1)) # 2行3列

print a,b

print a.dot(b) # 2行3列

[[1 2]

[3 4]] [[0 1 2]

[3 4 5]]

[[ 6 9 12]

[12 19 26]]

## 非數組運算,調用方法

a = np.random.randint(0,5,(2,3))

print a

print a.sum(),a.sum(axis=1),a.sum(0) # axis用于指定運算軸(默認全部,可指定0或1)

print a.min(),a.max(axis=1),a.mean(axis=1) # axis = 0: 按列計算,axis = 1: 按行計算

print a.cumsum(1) # 按行計算累積和

[[2 3 3]

[0 2 1]]

11 [8 3] [2 5 4]

0 [3 2] [ 2.66666667 1. ]

[[2 5 8]

[0 2 3]]

索引,切片,迭代

## 一維數組

a = np.arange(0,10,1)**2

print a

print a[0],a[2],a[-1],a[-2] # 索引從0開始,-1表示最后一個索引

print a[2:5],a[-5:-1] # 包括起點,不包括終點

a[-1] = 100; print a # 賦值

a[1:4]=100; print a # 批量賦值

a[:6:2] = -100; print a # 從開始到第6個索引,每隔一個元素(步長=2)賦值

print a[: :-1];print a # 將a逆序輸出,a本身未發生改變

b = [np.sqrt(np.abs(i)) for i in a]; print b # 通過遍歷賦值

[ 0 1 4 9 16 25 36 49 64 81]

0 4 81 64

[ 4 9 16] [25 36 49 64]

[ 0 1 4 9 16 25 36 49 64 100]

[ 0 100 100 100 16 25 36 49 64 100]

[-100 100 -100 100 -100 25 36 49 64 100]

[ 100 64 49 36 25 -100 100 -100 100 -100]

[-100 100 -100 100 -100 25 36 49 64 100]

[10.0, 10.0, 10.0, 10.0, 10.0, 5.0, 6.0, 7.0, 8.0, 10.0]

## 多維數組

a = np.arange(0,20).reshape((4,5))

print a, a[2,3], a[:,1], a[1:4,2], a[1:3,:]

print a[-1] # 相當于a[-1,:],即索引少于軸數時,確實的索引默認為整個切片

b = np.arange(0,24).reshape((2,3,4))

print b,b[1] # 相當于b[1,:,:] 和b[1,...]

print '-------------------'

for row in a:

print row # 遍歷以第一個軸為基礎

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]] 13 [ 1 6 11 16] [ 7 12 17] [[ 5 6 7 8 9]

[10 11 12 13 14]]

[15 16 17 18 19]

[[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]]

[[12 13 14 15]

[16 17 18 19]

[20 21 22 23]]]

[[12 13 14 15]

[16 17 18 19]

[20 21 22 23]]

-------------------

[0 1 2 3 4]

[5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]

形狀操作

a = np.floor(10*np.random.random((3,4)))

print a, a.shape #輸出a的形狀

print a.ravel() # 輸出平坦化后的a(a本身不改變)

a.shape = (6,2); print a # 改變a的形狀

print a.transpose() # 輸出a的轉置

[[ 0. 4. 3. 2.]

[ 1. 1. 3. 3.]

[ 4. 4. 6. 5.]] (3, 4)

[ 0. 4. 3. 2. 1. 1. 3. 3. 4. 4. 6. 5.]

[[ 0. 4.]

[ 3. 2.]

[ 1. 1.]

[ 3. 3.]

[ 4. 4.]

[ 6. 5.]]

[[ 0. 3. 1. 3. 4. 6.]

[ 4. 2. 1. 3. 4. 5.]]

## 補充:reshape和resize

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

b = a

a.reshape((3,2))# 不改變數組本身的形狀

print a

b.resize((3,2))# 改變數組本身形狀

print b

[[1 2 3]

[4 5 6]]

[[1 2]

[3 4]

[5 6]]

總結

以上是生活随笔為你收集整理的python中numpy.array_python中数组(numpy.array)的基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜婷婷在线观看 | 欧美a级成人淫片免费看 | 99国产精品免费视频 | 麻豆成人91精品二区三区 | 欧美成人精品一区二区三区 | 精品国产丝袜一区二区三区乱码 | 女人脱了内裤趴开腿让男躁 | 国产v综合v亚洲欧美久久 | 欧美日韩精品在线 | 精品日韩在线播放 | 黄色日韩在线 | av成人精品 | 日韩视频在线视频 | 国产日韩欧美另类 | 1024国产视频 | 国产在线999 | 青青久久av | 玖玖在线资源 | 亚洲综合精品视频 | 黄页网站视频 | 91动态图 | 亚洲综合激情另类小说区 | 91成人免费网站 | 小向美奈子在线观看 | 一级黄色免费看 | 黄色片地址 | 久久99精品国产.久久久久 | 全黄一级片 | 五月婷婷丁香综合 | 日韩成人在线一区 | aa免费视频| 一本一道波多野结衣av黑人 | 黄毛片在线观看 | 国产亚洲综合在线 | 午夜影视av| 日韩毛片在线 | 国产青青在线 | 亚洲自拍偷拍精品视频 | 一区二区三区日韩视频 | 丝袜人妻一区二区三区 | 国产在线色 | 亚洲色图av在线 | 毛片日韩| 久久视频免费 | 免费av一区二区三区 | 中文字幕一区二区在线观看视频 | 国产黄色片在线观看 | 国产一区二区三区免费看 | 自拍1页| 已满十八岁免费观看全集动漫 | 丰满少妇被猛烈进入 | 成人免费在线观看 | 男女插鸡视频 | 在线免费观看黄色片 | 五月婷婷国产 | 中文在线中文资源 | 亚洲理论片 | 国产淫片 | 亚洲自拍色| 国产一级视频 | 五月激情六月丁香 | 国产欧美综合一区二区三区 | 国产片天天弄 | 国产性av| 欧美成人xxxx| 欧美视频久久久 | 女人黄色片 | 欧美888 | 蜜芽久久 | 图片一区二区 | 亚洲精品观看 | a级片在线播放 | 小嫩女直喷白浆 | 国产精品玖玖玖 | 手机在线播放av | 国产又色又爽无遮挡免费动态图 | 欧美bbbbbbbbbbbb18av| 精品少妇一区二区三区免费观 | 美女伊人网 | 亚洲精品国产精品乱码不卡 | 窝窝午夜看片 | 国产综合精品 | 欧美男女动态图 | 色操插| 午夜精品视频一区二区三区在线看 | 蜜桃视频欧美 | 国产免费脚交足视频在线观看 | h在线播放 | 青青草原在线免费 | 就要操就要日 | 国产另类专区 | 啦啦啦视频在线观看 | 四虎最新网址在线观看 | 大奶一区 | 成人av福利 | 不用播放器看av | 草久在线 | 性爱视频免费 | 欧美久久综合网 |