#Numpy基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
#Numpy數(shù)組是一個多維數(shù)組對象,稱為ndarray。由兩部分組成:
#1.實際的數(shù)據(jù)
#2.描述這些數(shù)據(jù)的元數(shù)據(jù)
import numpy as np
ar = np.array([1,2,3,4,5,6])
ar1 = np.array([[1,2,3,4],[3,4,5,3],[5,4,1,1]]) #二維數(shù)組
print([1,2,3,4,5,6])
print(ar,type(ar))
print(ar.ndim) #輸出數(shù)組維度的個數(shù),rank
print(ar1)
print(ar1.ndim)
print(ar1.shape) #數(shù)組的維度,n行m列(n,m)
print(ar1.size) #總共元素的個數(shù)
print(ar.dtype) #數(shù)值數(shù)據(jù)類型
print(ar.itemsize)
print(ar.data)
ar1
輸出:
[1, 2, 3, 4, 5, 6]
[1 2 3 4 5 6] <class 'numpy.ndarray'>
1
[[1 2 3 4]
[3 4 5 3]
[5 4 1 1]]
2
(3, 4)
12
int32
4
<memory at 0x0000014A4B0264C8>
Out[16]:
array([[1, 2, 3, 4],
[3, 4, 5, 3],
[5, 4, 1, 1]])
#創(chuàng)建數(shù)組:array()函數(shù)
ar2 = np.array(range(10))
ar3 = np.arange(10)
ar4 = np.array([0,1,2,3,4,5,6])
ar5 = np.array([[0,1,2,3,4,5,6],[0,1,2,3,4,5,6]])
ar6 = np.array([[0,1,2,3,4,5,6],['a','b','c','d','e','f','g']])
ar7 = np.array([[0,1,2,3,4,5,6],['a','b','c','d','e','f','g','h']])
ar8 = np.array(np.random.rand(10).reshape(2,5))
print(ar2)
print(ar3)
print(ar4)
print(ar5)
print(ar6,ar6.ndim)
print(ar7,ar7.ndim)
print(ar8)
輸出:
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4 5 6]
[[0 1 2 3 4 5 6]
[0 1 2 3 4 5 6]]
[['0' '1' '2' '3' '4' '5' '6']
['a' 'b' 'c' 'd' 'e' 'f' 'g']] 2
[list([0, 1, 2, 3, 4, 5, 6]) list(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])] 1
[[ 0.32319683 0.17803918 0.36251316 0.0944563 0.98634951]
[ 0.34702789 0.36164464 0.70085575 0.30127829 0.97613475]]
#使用arrange()創(chuàng)建數(shù)組
print(np.arange(10))
print(np.arange(10.0))
print(np.arange(3,13))
print(np.arange(3.0,19.0,3))
print(np.arange(10000))
輸出:
[0 1 2 3 4 5 6 7 8 9]
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
[ 3 4 5 6 7 8 9 10 11 12]
[ 3. 6. 9. 12. 15. 18.]
[ 0 1 2 ..., 9997 9998 9999]
# 創(chuàng)建數(shù)組:linspace():返回在間隔[開始,停止]上計算的num個均勻間隔的樣本。
ar1 = np.linspace(2.0, 3.0, num=5)
ar2 = np.linspace(2.0, 3.0, num=5, endpoint=False)
ar3 = np.linspace(2.0, 3.0, num=5, retstep=True)
print(ar1,type(ar1))
print(ar2)
print(ar3,type(ar3))
# numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
# start:起始值,stop:結(jié)束值
# num:生成樣本數(shù),默認為50
# endpoint:如果為真,則停止是最后一個樣本。否則,不包括在內(nèi)。默認值為True。
# retstep:如果為真,返回(樣本,步驟),其中步長是樣本之間的間距 → 輸出為一個包含2個元素的元祖,第一個元素為array,第二個為步長實際值
輸出:
[ 2. 2.25 2.5 2.75 3. ] <class 'numpy.ndarray'>
[ 2. 2.2 2.4 2.6 2.8]
(array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25) <class 'tuple'>
# 創(chuàng)建數(shù)組:zeros()/zeros_like()/ones()/ones_like()
ar1 = np.zeros(5)
ar2 = np.zeros((2,2), dtype = np.int)
print(ar1,ar1.dtype)
print(ar2,ar2.dtype)
print('------')
# numpy.zeros(shape, dtype=float, order='C'):返回給定形狀和類型的新數(shù)組,用零填充。
# shape:數(shù)組緯度,二維以上需要用(),且輸入?yún)?shù)為整數(shù)
# dtype:數(shù)據(jù)類型,默認numpy.float64
# order:是否在存儲器中以C或Fortran連續(xù)(按行或列方式)存儲多維數(shù)據(jù)。
ar3 = np.array([list(range(5)),list(range(5,10))])
ar4 = np.zeros_like(ar3)
print(ar3)
print(ar4)
print('------')
# 返回具有與給定數(shù)組相同的形狀和類型的零數(shù)組,這里ar4根據(jù)ar3的形狀和dtype創(chuàng)建一個全0的數(shù)組
ar5 = np.ones(9)
ar6 = np.ones((2,3,4))
ar7 = np.ones_like(ar3)
print(ar5)
print(ar6)
print(ar7)
# ones()/ones_like()和zeros()/zeros_like()一樣,只是填充為1
輸出:
[ 0. 0. 0. 0. 0.] float64
[[0 0]
[0 0]] int32
------
[[0 1 2 3 4]
[5 6 7 8 9]]
[[0 0 0 0 0]
[0 0 0 0 0]]
------
[ 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]
[[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]
[ 1. 1. 1. 1.]]]
[[1 1 1 1 1]
[1 1 1 1 1]]
# 創(chuàng)建數(shù)組:eye()
print(np.eye(5))
# 創(chuàng)建一個正方的N*N的單位矩陣,對角線值為1,其余為0
輸出:
[[ 1. 0. 0. 0. 0.]
[ 0. 1. 0. 0. 0.]
[ 0. 0. 1. 0. 0.]
[ 0. 0. 0. 1. 0.]
[ 0. 0. 0. 0. 1.]]
14天Python編程從入門到實踐--Day13:數(shù)據(jù)分析之Numpy
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。