首頁 >後端開發 >Python教學 >Python NumPy教程之數組的創建詳解

Python NumPy教程之數組的創建詳解

WBOY
WBOY轉載
2022-08-26 11:59:552753瀏覽

【相關推薦:Python3影片教學

使用List 建立陣列

陣列用於在一個變數中儲存多個值。 Python 沒有對數組的內建支持,但可以使用 Python 列表代替。

範例:

arr = [1, 2, 3, 4, 5]
arr1 = ["geeks", "for", "geeks"]
# 用于创建数组的 Python 程序
 
# 使用列表创建数组
    arr=[1, 2, 3, 4, 5]
    for i in arr:
        print(i)

輸出:





5

使用陣列函數建立陣列

array(data type, value list) 函數用於建立一個數組,其參數中指定了資料類型和值列表。

範例:

# 演示 array() 工作的 Python 代码
  
# 为数组操作导入“array”
import array
  
# 用数组值初始化数组
# 用有符号整数初始化数组
arr = array.array('i', [1, 2, 3]) 
 
# 打印原始数组
print ("The new created array is : ",end="")
for i in range (0,3):
    print (arr[i], end=" ")
 
print ("\r")

輸出:

The new created array is : 1 2 3 1 5

使用numpy 方法建立陣列

NumPy 提供了幾個函數來建立具有初始佔位符內容的陣列。這些最大限度地減少了成長陣列的必要性,這是一項昂貴的操作。例如:np.zeros、np.empty等。

numpy.empty(shape, dtype = float, order = 'C'): 傳回給定形狀和類型的新數組,具有隨機值。

# 说明 numpy.empty 方法的 Python 代码
 
import numpy as geek
 
b = geek.empty(2, dtype = int)
print("Matrix b : \n", b)
 
a = geek.empty([2, 2], dtype = int)
print("\nMatrix a : \n", a)
 
c = geek.empty([3, 3])
print("\nMatrix c : \n", c)

輸出:

Matrix b : 
 [         0 1079574528]

Matrix a : 
 [[0 01 ]
 [0 0]]

Matrix a : 
 [[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0. 0.  0 .]]

numpy.zeros(shape, dtype = None, order = 'C'): 傳回給定形狀和類型的新數組,帶零。

# 说明 numpy.zeros 方法的 Python 程序
 
import numpy as geek
 
b = geek.zeros(2, dtype = int)
print("Matrix b : \n", b)
 
a = geek.zeros([2, 2], dtype = int)
print("\nMatrix a : \n", a)
 
c = geek.zeros([3, 3])
print("\nMatrix c : \n", c)

輸出:

Matrix b : 
 [0 0]

Matrix a : 
 [[0 0 ]
 [0 0]]

Matrix c : 
 [[ 0.  0.  0.]
 [ 0.  0.  0.]
 [ 0.  0.  0.  0.]

 [ 0.  0.  0 .]]

重塑陣列

我們可以使用reshape

方法來重塑陣列。考慮一個形狀為 (a1, a2, a3, ..., aN) 的陣列。我們可以重新整形並將其轉換為另一個形狀為 (b1, b2, b3, ..., bM) 的陣列。

唯一需要的條件是: a1 x a2 x a3 … x aN = b1 x b2 x b3 … x bM 。 (即陣列的原始大小保持不變。)

numpy.reshape(array, shape, order = 'C'):

在不更改陣列資料的情況下對陣列進行整形。

# 说明 numpy.reshape() 方法的 Python 程序
 
import numpy as geek
 
array = geek.arange(8)
print("Original array : \n", array)
 
# 具有 2 行和 4 列的形状数组
array = geek.arange(8).reshape(2, 4)
print("\narray reshaped with 2 rows and 4 columns : \n", array)
 
# 具有 2 行和 4 列的形状数组
array = geek.arange(8).reshape(4 ,2)
print("\narray reshaped with 2 rows and 4 columns : \n", array)
 
# 构造 3D 数组
array = geek.arange(8).reshape(2, 2, 2)
print("\nOriginal array reshaped to 3D : \n", array)
輸出:


Original array : 
 [0 1 2 3 4 5 6 7]

array reshaped with 2 rows and 4 columns : 
 [[0 1 2 3]
 [4 5 6 7]]

array reshaped with 2 rows and 4 columns : 
 [[0 1]##[0 1]
 [2 3]
 [4 5]
 [6 7]]

Original array reshaped to 3D : 
 [[[0 1]
  [2 3]]

 [[4 5]

  [6 7]]]

為了建立數字序列,NumPy 提供了一個類似range 的函數,它會傳回數組而不是列表。

arange傳回給定間隔內均勻分佈的值。

長是指定的。

linspace 傳回給定間隔內均勻分佈的值。 編號

_ 的元素被回傳。

arange([start,] stop[, step,][, dtype]):

根據間隔傳回一個具有均勻間隔元素的陣列。所提及的間隔是半開的,即[開始,停止)

# 说明 numpy.arange 方法的 Python 编程
 
import numpy as geek
 
print("A\n", geek.arange(4).reshape(2, 2), "\n")
 
print("A\n", geek.arange(4, 10), "\n")
 
print("A\n", geek.arange(4, 20, 3), "\n")
輸出:



 [[0 1] 
 [2 3]] 


 [4 5 6 7 8 9] 

## [ 4 7 10 13 16 19]






################################################################################################################################# ####numpy.linspace(start, stop, num = 50, endpoint = True, retstep = False, dtype = None):### 在間隔中均勻回傳數字空間。類似於 arange 但不是 step 它使用樣本編號。 ###
# 说明 numpy.linspace 方法的 Python 编程
 
import numpy as geek
 
# 重新设置为 True
print("B\n", geek.linspace(2.0, 3.0, num=5, retstep=True), "\n")
 
# 长期评估 sin()
x = geek.linspace(0, 2, 10)
print("A\n", geek.sin(x))
######輸出:############B### (array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)### ###A### [ 0.          0.22039774  0.42995636  0.6183698   0.77637192  0.6183698   0.77637192  0.8961922#71 786557   0.90929743]#########展平陣列#######我們可以用展平方法將陣列的副本折疊成一維。它接受 order 參數。預設值為“C”(用於行優先順序)。使用“F”表示列主要順序。 #########numpy.ndarray.flatten(order = 'C')### :傳回折疊成一維的陣列的副本。 ###
# 说明 numpy.flatten() 方法的 Python 程序
 
import numpy as geek
 
array = geek.array([[1, 2], [3, 4]])
 
# 使用扁平化方法
array.flatten()
print(array)
 
#使用扁平化方法
array.flatten('F')
print(array)
######輸出 :######

[1, 2, 3, 4] 
[1, 3, 2, 4]

在Numpy 中建立陣列的方法

##傳回給定形狀和類型的新數組,用一個填充one_like()返回與給定數組具有相同形狀和類型的數組zeros()傳回給定形狀和類型的新數組,用零填滿zeros_like()傳回與給定數組具有相同形狀和類型的零數組full_like()傳回與給定數組具有相同形狀和類型的完整數組。 array()建立一個陣列#asarray()將輸入轉換為陣列asanyarray()將輸入轉換為ndarray,但透過ndarray 子類別ascontiguousarray()傳回記憶體中的連續數組(C 順序)asmatrix()將輸入解釋為矩陣copy()傳回給定物件的陣列副本#frombuffer()將緩衝區解釋為一維數組fromfile()從文字或二進位檔案中的資料建構陣列fromfunction()#透過在在每個座標上執行函數來建構數組fromiter()#從可迭代物件建立一個新的一維數組fromstring()從字串中的文字資料初始化的新一維數組loadtxt()從文字檔案載入資料arange()在給定間隔內傳回均勻間隔的值linspace()在指定的時間間隔內傳回均勻分佈的數字logspace()傳回在對數刻度上均勻分佈的數字geomspace()傳回在對數尺度上均勻分佈的數字(幾何級數)meshgrid()從座標向量傳迴座標矩陣mgrid()nd_grid 實例,它傳回一個密集的多維「網格」##ogrid()diag()diagflat()tri()tril()#triu()vander()mat()bmat() #【相關推薦:
功能 描述
empty() 傳回給定形狀和類型的新數組,而不初始化條目
empty_like() 傳回與給定數組具有相同形狀和類型的新數組
eye() 傳回一個二維數組,其中對角線為1,其他位置為0。
identity() 傳回標識陣列
#ones()
nd_grid 實例,它傳回一個開放的多維「meshgrid」
提取對角線或建構對角線數組
建立一個二維數組,將扁平化輸入作為對角線
一個數組,在給定的對角線處和下方都有一個,在其他地方有零
陣列的下三角形
#陣列的上三角形
產生范德蒙矩陣
將輸入解釋為矩陣
從字串、巢狀序列或陣列建立矩陣物件
Python3影片教學

以上是Python NumPy教程之數組的創建詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除