numpy創建數組(矩陣)的幾種方法


1.調用numpy的array()方法。

array函數接受序列型對象,如列表,元組作為參數,返回一個類型為ndarry的數組。這是numpy的基礎數據類型。與列表不同,ndarry必須包含同一數據類型,否則向上轉換或報錯。

numpy支持的數據類型如下:

使用array創建數組時,如果沒有指定數據類型,將默認為浮點數類型。

關於自定義類型待補充。

 

import numpy as np
x=np.array([1,2,3,4,5,6])
print(type(x))
print(x)
#輸出
#<class 'numpy.ndarray'>
#[1 2 3 4 5 6]

x=np.array([[1,2,3],[4,5,6]])
print(x)
print(x.shape,x.dtype,x.size,x.ndim)#形狀,數據類型,元素個數,維度
'''
輸出
[[1 2 3]
 [4 5 6]]
(2, 3) int32 6 2
'''
x=np.array([a for a in range(10)])#迭代器
print(x)
print(x.shape,x.dtype,x.size,x.ndim)
'''
輸出
[0 1 2 3 4 5 6 7 8 9]
(10,) int32 10 1
'''

x=np.array([range(a,a+5) for a in range(5)])#嵌套列表
print(x)
print(x.shape,x.dtype,x.size,x.ndim)
'''
輸出
[[0 1 2 3 4]
 [1 2 3 4 5]
 [2 3 4 5 6]
 [3 4 5 6 7]
 [4 5 6 7 8]]
(5, 5) int32 25 2
'''

2.調用numpy的arange()和linspace()方法。

arange函數的格式為numpy.arange(start, stop, step, dtype)

與python的range函數類似,start和stop相當於一個左閉右開的區間。step為步長默認為1,dtype為數據類型。函數返回一個ndarry數組。

 

linspace函數也可以用來創建等差數列數組,其格式為np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

與arange函數不同,linspace的num參數為創建的數組元素個數,步長為(stop-start)/(num-1).

將 endpoint 設為 false,結果不包含終止值。

 

x=np.arange(10)
print(x)
print(x.shape,x.dtype,x.ndim,x.size)
'''
輸出
[0 1 2 3 4 5 6 7 8 9]
(10,) int32 1 10
'''

x=np.arange(1,11,2)
print(x)
print(x.shape,x.dtype,x.ndim,x.size)
'''
輸出
[1 3 5 7 9]
(5,) int32 1 5
'''

a=np.linspace(0,5,6)
print(a)
'''
[0. 1. 2. 3. 4. 5.]
'''

a=np.linspace(2,25,5,False)
print(a)
'''
[ 2.   6.6 11.2 15.8 20.4]
'''

 

3.調用ones,zeros,full,empty方法。

 

a=np.ones((3,4),dtype=int)
print(a)
'''
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
'''

a=np.zeros((3,4))
print(a)
'''
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
'''

a=np.full((3,4),4.2)
print(a)
'''
[[4.2 4.2 4.2 4.2]
 [4.2 4.2 4.2 4.2]
 [4.2 4.2 4.2 4.2]]
'''

a=np.full((2,2),9)
print(np.full_like(a,3))
'''
[[3 3]
 [3 3]]
ones_like,zeros_like類似。
'''

4.調用tile方法。

tile意為展開,鋪設。它接受兩個參數,格式為tile(A,reps)。

A的數據類型:array_like,例如數組,列表,元組,字典,以及int,float,string等。

B的數據類型:array_like,例如數組,列表,元組,字典,int等。

A通常為需要進行操作的輸入數組,B為A在每個軸上的重復次數。

函數的返回值為數組。

簡單理解為將A視為一個元素,B為返回數組的形狀(維度)。

實例:

a=np.tile(2,9)
print(a)
#[2 2 2 2 2 2 2 2 2]

a=np.tile((2,2),(2,2))#兩個參數均為元組
print(a)
'''
[[2 2 2 2]
 [2 2 2 2]]
'''

a=[2,3,4]
b=np.tile(a,4)
print(b)
'''
[2 3 4 2 3 4 2 3 4 2 3 4]
'''

a=np.arange(4).reshape(2,2)
b=np.tile(a,[2,2])
print(b)
'''
[[0 1 0 1]
 [2 3 2 3]
 [0 1 0 1]
 [2 3 2 3]]
'''

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM