科學計算庫Numpy 陣列(ndarray)

2021-07-30 13:29:37 字數 1901 閱讀 8863

學過其他強型別語言的朋友都知道陣列是一種資料型別,它裡面的元素必須是同一種型別,類似python的列表,但是這種列表只能是同種元素。

用法numpy.array(list/tuple)

import numpy as np #重新命名numpy為np

arr = np.array([1,2,3,4,5,6])#建立一維陣列

print(arr)#[1 2 3 4 5 6]

arr = np.array([[1,2,3],[4,5,6]])#二維陣列

print(arr)

'''[[1 2 3]

[4 5 6]]

'''

#程式上下文接上文

#陣列的維數

print(arr.ndim) #2

#陣列的形狀

print(arr.shape)#(2, 3),返回乙個元祖,一維就是(2,),二維(2,3)每個數就是所對應的軸方向的元素個數,一維就是元素數,二維就是行和列....

#元素個數

print(arr.size)#6,所有的元素個數

#元素資料型別

print(arr.dtype)#int64 ,64位整數

#乙個元素所佔的位元組數

print(arr.itemsize)#8, 8個位元組,8*8=64位

#資料所在記憶體緩衝區

print(arr.data)#

與單個元素進行運算

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

print(a+1)#[2 3 4] 每個元素都+1

print(a*2)#[2 4 6] 每個都乘2

#。。。其他運算都是相同的道理

次方運算

print(a**2)#每個元素平方[1 4 9]

print(a**0.5)#二分之一次方[ 1. 1.41421356 1.73205081]

陣列運算

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

print(a+b)#[2, 4, 6]對應元素相加

#注意shape不同不能相運算(除單個元素這種情況)

c = np.array([1,2])

print(b+c)#報錯

'''traceback (most recent call last):

file "", line 1, in valueerror: operands could not be broadcast together with shapes (3,) (2,)

'''#單個元素的可以運算

c = array([1,])

print(b+d) #[2, 3, 4]

sum([axis])函式,axis為以哪個軸為基準求和,不傳入axis則所有元素求和,axis可以傳入從0到ndim-1

#一維

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

a.sum()#1+2+3

a.sum(axis=0) #1+2+3 一維只有乙個軸(可以想象為座標軸)

'''<-----按這個方向求和

[1,2,3]

'''#二維

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

b.sum()#1+2+3+4

b.sum(axis=0)#[1+3,2+4]

'''[1,2]↑按這個方向求和,每個行對應位相加

[3,4]|

'''b.sum(axis=1)#[1+2,3+4]

'''<---按這個方向求和,每個列對應位求和

[1,2]

[3,4]

'''

一維陣列的生成

參考文件

python科學計算 numpy

畢設的程式設計中使用了python來處理資料,主要使用的是numpy包,網上大部分對numpy進行介紹的教程比較老舊,想要使用的功能不太容易找到。因此,寫這篇文章來對現有的一些資源就行整理,當然想要更全面的了解numpy的使用還是從訪問官方手冊開始。win下 pip isntall numpy當然最...

科學計算工具 Numpy

基礎類庫簡介 ndarray陣列建立 ndarray的矩陣運算 元素計算函式 元素統計函式 元素判斷函式 元素去重排序函式 資料分析概念 資料分析是指用適當的統計分析方法對收集來的大量資料進行分析,提取有用資訊和形成結論的過程。資料分析的過程 1.資料收集 本地資料或者網路資料的採集與操作.2.資料...

科學計算庫(三)numpy之ufunc

abs fabs 取絕對值。fabs 更快的速度,但不能計算複數a bj的絕對值 sqrt 平方根 square 平方 exp x 計算自然常數e的x次方 log e為底 log10 log2 log1p 以e為底,1 arr為真數,求對數 如果是其他底數的log函式可以通過換底公式轉換。log換底...