国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python Numpy 數組的初始化和基本操作

Python Numpy 數組的初始化和基本操作

2021-01-21 00:35Baoli1008 Python

Python 是一種高級的,動態的,多泛型的編程語言。接下來通過本文給大家介紹Python Numpy 數組的初始化和基本操作,感興趣的朋友一起看看吧

Python 是一種高級的,動態的,多泛型的編程語言。Python代碼很多時候看起來就像是偽代碼一樣,因此你可以使用很少的幾行可讀性很高的代碼來實現一個非常強大的想法。

 

一.基礎:

 

Numpy的主要數據類型是ndarray,即多維數組。它有以下幾個屬性:

ndarray.ndim:數組的維數
ndarray.shape:數組每一維的大小
ndarray.size:數組中全部元素的數量
ndarray.dtype:數組中元素的類型(numpy.int32, numpy.int16, and numpy.float64等)
ndarray.itemsize:每個元素占幾個字節

例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>>> import numpy as np
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
    [ 5, 6, 7, 8, 9],
    [10, 11, 12, 13, 14]])
>>> a.shape
(3, 5)
>>> a.ndim
2
>>> a.dtype.name
'int64'
>>> a.itemsize
8
>>> a.size
15
>>> type(a)
<type 'numpy.ndarray'>
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
<type 'numpy.ndarray'>

 

二.創建數組:

 

使用array函數講tuple和list轉為array:

?
1
2
3
4
5
6
7
8
9
>>> import numpy as np
>>> a = np.array([2,3,4])
>>> a
array([2, 3, 4])
>>> a.dtype
dtype('int64')
>>> b = np.array([1.2, 3.5, 5.1])
>>> b.dtype
dtype('float64')

多維數組:

?
1
2
3
4
>>> b = np.array([(1.5,2,3), (4,5,6)])
>>> b
array([[ 1.5, 2. , 3. ],
    [ 4. , 5. , 6. ]])

生成數組的同時指定類型:

?
1
2
3
4
>>> c = np.array( [ [1,2], [3,4] ], dtype=complex )
>>> c
array([[ 1.+0.j, 2.+0.j],
    [ 3.+0.j, 4.+0.j]])

生成數組并賦為特殊值:

ones:全1
zeros:全0
empty:隨機數,取決于內存情況

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> np.zeros( (3,4) )
array([[ 0., 0., 0., 0.],
    [ 0., 0., 0., 0.],
    [ 0., 0., 0., 0.]])
>>> np.ones( (2,3,4), dtype=np.int16 )        # dtype can also be specified
array([[[ 1, 1, 1, 1],
    [ 1, 1, 1, 1],
    [ 1, 1, 1, 1]],
    [[ 1, 1, 1, 1],
    [ 1, 1, 1, 1],
    [ 1, 1, 1, 1]]], dtype=int16)
>>> np.empty( (2,3) )                 # uninitialized, output may vary
array([[ 3.73603959e-2626.02658058e-1546.55490914e-260],
    [ 5.30498948e-3133.14673309e-3071.00000000e+000]])

生成均勻分布的array:

arange(最小值,最大值,步長)(左閉右開)
linspace(最小值,最大值,元素數量)

?
1
2
3
4
5
6
7
>>> np.arange( 10, 30, 5 )
array([10, 15, 20, 25])
>>> np.arange( 0, 2, 0.3 )         # it accepts float arguments
array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
>>> np.linspace( 0, 2, 9 )         # 9 numbers from 0 to 2
array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
>>> x = np.linspace( 0, 2*pi, 100 )    # useful to evaluate function at lots of points

 

三.基本運算:

 

整個array按順序參與運算:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> a = np.array( [20,30,40,50] )
>>> b = np.arange( 4 )
>>> b
array([0, 1, 2, 3])
>>> c = a-b
>>> c
array([20, 29, 38, 47])
>>> b**2
array([0, 1, 4, 9])
>>> 10*np.sin(a)
array([ 9.12945251, -9.88031624, 7.4511316 , -2.62374854])
>>> a<35
array([ True, True, False, False], dtype=bool)

兩個二維使用*符號仍然是按位置一對一相乘,如果想表示矩陣乘法,使用dot:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> A = np.array( [[1,1],
...       [0,1]] )
>>> B = np.array( [[2,0],
...       [3,4]] )
>>> A*B             # elementwise product
array([[2, 0],
    [0, 4]])
>>> A.dot(B)          # matrix product
array([[5, 4],
    [3, 4]])
>>> np.dot(A, B)        # another matrix product
array([[5, 4],
    [3, 4]])

內置函數(min,max,sum),同時可以使用axis指定對哪一維進行操作:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> b = np.arange(12).reshape(3,4)
>>> b
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])
>>>
>>> b.sum(axis=0)              # sum of each column
array([12, 15, 18, 21])
>>>
>>> b.min(axis=1)              # min of each row
array([0, 4, 8])
>>>
>>> b.cumsum(axis=1)             # cumulative sum along each row
array([[ 0, 1, 3, 6],
    [ 4, 9, 15, 22],
    [ 8, 17, 27, 38]])

Numpy同時提供很多全局函數

?
1
2
3
4
5
6
7
8
9
10
>>> B = np.arange(3)
>>> B
array([0, 1, 2])
>>> np.exp(B)
array([ 1.    , 2.71828183, 7.3890561 ])
>>> np.sqrt(B)
array([ 0.    , 1.    , 1.41421356])
>>> C = np.array([2., -1., 4.])
>>> np.add(B, C)
array([ 2., 0., 6.])

 

四.尋址,索引和遍歷:

 

一維數組的遍歷語法和python list類似:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
>>> a = np.arange(10)**3
>>> a
array([ 018, 27, 64, 125, 216, 343, 512, 729])
>>> a[2]
8
>>> a[2:5]
array([ 8, 27, 64])
>>> a[:6:2] = -1000  # equivalent to a[0:6:2] = -1000; from start to position 6, exclusive, set every 2nd element to -1000
>>> a
array([-1000,   1, -100027, -1000125216343512729])
>>> a[ : :-1]                 # reversed a
array([ 729512343216125, -100027, -1000,   1, -1000])
>>> for i in a:
...   print(i**(1/3.))
...
nan
1.0
nan
3.0
nan
5.0
6.0
7.0
8.0
9.0

多維數組的訪問通過給每一維指定一個索引,順序是先高維再低維:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> def f(x,y):
...   return 10*x+y
...
>>> b = np.fromfunction(f,(5,4),dtype=int)
>>> b
array([[ 0, 1, 2, 3],
    [10, 11, 12, 13],
    [20, 21, 22, 23],
    [30, 31, 32, 33],
    [40, 41, 42, 43]])
>>> b[2,3]
23
>>> b[0:5, 1]            # each row in the second column of b
array([ 1, 11, 21, 31, 41])
>>> b[ : ,1]            # equivalent to the previous example
array([ 1, 11, 21, 31, 41])
>>> b[1:3, : ]           # each column in the second and third row of b
array([[10, 11, 12, 13],
    [20, 21, 22, 23]])
When fewer indices are provided than the number of axes, the missing indices are considered complete slices:
 
>>>
>>> b[-1]                 # the last row. Equivalent to b[-1,:]
array([40, 41, 42, 43])

…符號表示將所有未指定索引的維度均賦為 : ,:在python中表示該維所有元素:

?
1
2
3
4
5
6
7
8
9
10
11
12
>>> c = np.array( [[[ 0, 1, 2],        # a 3D array (two stacked 2D arrays)
...         [ 10, 12, 13]],
...        [[100,101,102],
...         [110,112,113]]])
>>> c.shape
(2, 2, 3)
>>> c[1,...]                  # same as c[1,:,:] or c[1]
array([[100, 101, 102],
    [110, 112, 113]])
>>> c[...,2]                  # same as c[:,:,2]
array([[ 2, 13],
    [102, 113]])

遍歷:

如果只想遍歷整個array可以直接使用:

?
1
2
3
4
5
6
7
8
>>> for row in b:
...   print(row)
...
[0 1 2 3]
[10 11 12 13]
[20 21 22 23]
[30 31 32 33]
[40 41 42 43]

但是如果要對每個元素進行操作,就要使用flat屬性,這是一個遍歷整個數組的迭代器

?
1
2
3
>>> for element in b.flat:
...   print(element)
...

 

總結

以上所述是小編給大家介紹的Python Numpy 數組的初始化和基本操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/Baoli1008/article/details/50531684

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲午夜精品一区二区三区 | 亚洲国产二区 | 久久精品国产v日韩v亚洲 | 久久精品99 | 精品久久久一 | 成人精品一区二区三区 | 国产美女网站视频 | 香蕉久久一区二区不卡无毒影院 | 欧美日韩网站 | 最新高清无码专区 | 在线视频 91 | 日本在线观看一区 | 国产一区精品视频 | 五月天综合网 | 天天操天天拍 | 国产综合精品一区二区三区 | 亚洲一区二区三 | 欧美一区二区三区免费 | 日韩在线一区二区三区免费视频 | 一级毛片儿 | 午夜免费电影 | 亚洲欧美国产日韩综合 | 国产黄色av网站 | 91精品福利少妇午夜100集 | 欧美激情综合五月色丁香小说 | 国产一区亚洲二区三区 | 榴莲视频成人在线观看 | 欧美成人午夜视频 | 亚洲精品久久久久久久久久久 | 国产三级黄色毛片 | 国产91精品在线 | 欧美色视频在线观看 | 久久免费精品 | 国产激情视频 | 丝袜+亚洲+另类+欧美+变态 | 国产精品尤物麻豆一区二区三区 | 黄色一级视频 | 91免费在线视频 | 日韩3级在线观看 | 中文字幕视频在线观看 | 狠狠躁夜夜躁人人爽天天天天97 |