python中Numpy的陣列建立

2021-09-25 07:04:10 字數 3583 閱讀 9295

numpy的主要物件是同種元素的多維陣列

特點:這是乙個所有元素都是一種型別,通過乙個正整數元組索引的元素**

numpy底層是使用c編寫的

import numpy as np

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

# 陣列的秩

# 軸的個數稱為秩

# 軸(axes)是陣列的維度

print(arr1.ndim) # 結論:一維陣列秩為1,二維陣列秩為2

# 陣列的維度

print(arr1.shape) # (3,)--返回的型別,只有乙個元素的元組。

# 此處陣列的維度為1,3表示軸的長度。

# 二維陣列

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

[4, 5, 6, 7],

[7, 8, 9, 0]])

print('arr2的秩為:', arr2.ndim)

print('arr2的維度:', len(arr2.shape)) # 2-----(3, 4)

# 二、常用屬性

# 1、ndim

# 2、shape

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

print(arr3.shape, arr3)

arr3.shape = (2, 3)

print(arr3)

# (3) size

# 元素總和

print(arr3.size)

if len(arr3.shape) == 2:

print('元素總個數:', arr3.shape[0] * arr3.shape[1])

elif len(arr3.shape) == 1:

print('元素總個數:', arr3.shape[0])

# dtype

# 乙個用來描述陣列中元素型別的物件,可以通過創造或指定python型別

print(arr3.dtype) # int32

# itemsize

# 陣列中每個元素的位元組大小

print(arr3.itemsize) # 4個位元組

# data-----陣列的記憶體位址,是資料儲存在記憶體的緩衝區位址

print(arr3.data) #

執行後:

1

(3,)

arr2的秩為: 2

arr2的維度: 2

(6,) [1 2 3 4 5 6]

[[1 2 3]

[4 5 6]]

6元素總個數: 6

int32

4

陣列的建立

# 方法有:

# 1.array()

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

a2 = np.array([(1, 2),

(3, 4)])

print(a2)

a3 = np.array([[1, 2],

[3, 4]])

print(a3.dtype)

# dtype

a4 = np.array([[1, 2],

[3, 4]], dtype=np.float32)

print(a4.dtype)

# 2、arange()函式 建立一維陣列

# 格式:arange(起,止,步長)

# [`start`, `stop`)

a5 = np.arange(0, 1, 0.1)

print(a5, a5.dtype)

a6 = np.arange(0, 90, 1.5)

print(a6)

# 通常無法準確預估元素個數,所以我們一般使用linspace

# 3.使用linspace()函式

# 注意[`start`, `stop`]

a7 = np.linspace(1, 10, 10)

print(a7)

# 4. logspace()--等比數列

# 生成10^1-10^3之間的3個等比數值

a8 = np.logspace(1, 3, 3)

print(a8)

# 生成2^0-2^10之間的10個等比數值

a9 = np.logspace(0, 10, 11, base=2, dtype=np.int32)

print(a9)

# 5.zeros/ones

a10 = np.zeros((2, 3))

print(a10)

a11 = np.ones((2, 3))

print(a11)

# 6、empty()

# 該函式建立乙個內容隨機並且依賴於記憶體狀態的陣列。

a12 = np.empty((2, 3))

print(a12)

# 7、eye()

# 生成n階矩陣,對角線元素為1

a13 = np.eye(3)

print(a13)

# 8.diag()函式

a14 = np.diag([1, 2, 3, 4])

print(a14)

執行後:

[[1 2]

[3 4]]

int32

float32

[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9] float64

[ 0. 1.5 3. 4.5 6. 7.5 9. 10.5 12. 13.5 15. 16.5

18. 19.5 21. 22.5 24. 25.5 27. 28.5 30. 31.5 33. 34.5

36. 37.5 39. 40.5 42. 43.5 45. 46.5 48. 49.5 51. 52.5

54. 55.5 57. 58.5 60. 61.5 63. 64.5 66. 67.5 69. 70.5

72. 73.5 75. 76.5 78. 79.5 81. 82.5 84. 85.5 87. 88.5]

[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]

[ 10. 100. 1000.]

[ 1 2 4 8 16 32 64 128 256 512 1024]

[[ 0. 0. 0.]

[ 0. 0. 0.]]

[[ 1. 1. 1.]

[ 1. 1. 1.]]

[[ 1. 1. 1.]

[ 1. 1. 1.]]

[[ 1. 0. 0.]

[ 0. 1. 0.]

[ 0. 0. 1.]]

[[1 0 0 0]

[0 2 0 0]

[0 0 3 0]

[0 0 0 4]]

Python中numpy陣列的合併

python中numpy陣列的合併有很多方法,如 np.concatenate np.stack np.hstack np.vstack np.dstack 其中最泛用的是第乙個和第二個。第乙個可讀性好,比較靈活,但是佔記憶體大。第二個則沒有記憶體占用大的問題。parameters introduc...

Python中numpy陣列切片

python中符合切片並且常用的有 列表,字串,元組。下面那列表來說明,其他的也是一樣的。格式 開頭 結束 步長 開頭 當步長 0時,不寫預設0。當步長 0時,不寫預設 1 結束 當步長 0時,不寫預設列表長度加一。當步長 0時,不寫預設負的列表長度減一 步長 預設1,0 是從左往右走,0是從右往左...

Python中的Numpy陣列常用操作

最近使用keras做一些東西,然後會經常用到numpy來進行陣列的操作。途中在網上查詢了很多操作的相關方法,這裡將一些我常用到的方法記錄在這,用於遺忘後自己查閱 估計自己以後會經常使用python 也用於大家查閱。np.ones 函式與np.zeros 函式可以建立任意維度的全1或全0陣列。函式引數...