numpy 一些知識

import numpy as nppython

什麼類型的相加,返回的仍是什麼類型的,因此在累加小類型的數值時會出現問題以下:數組

a=np.array([123,232,221], dtype=np.uint8)dom

a[0]+a[1]+a[2]  返回的和就是錯誤的,由於和超出了255,返回的和的類型爲uint8,因此結果是錯誤的,ui

這個要當心,spa

須要把a的類型進行變換,a=np.int32(a),就不會出現上面的問題了。element

 

  • np.zeros() 等本身建立的數組,類型爲float64,是默認的,能夠在建立時制定類型。

np.zeros(4, dtype=np.uint8)import

np.zeros((3,4), dtype=np.int16)隨機數

  • np.linspace(a,b,c, endpoint=True)  建立從a到b的等差序列,包含c個元素,包含a和b(若是endpoint=True)。默認爲True
  • 三維數組排列(2,3,4)

是第一頁,再第二頁,每頁裏是行,列排放。引用

(6,2,3,4,5)五維的數據的話六個桌子排成排,每一個桌子上有兩本書,每本書有三頁,每頁上有4行5列數字。float

  • 運算

a*b 是elementwise product 元素對元素操做

a.dot(b)  或者 np.dot(a,b) 是 matrix product 矩陣運算

  • 隨機數

np.random.random(5)   或者np.random.random((3,4))   生成隨機數字的數組,都是小於1的。

a.min() , a.max() , a.sum()   最小,最大,元素求和

能夠求出每一的最大或者最小或者和,a.min(axis=1), a.max(axis=1), a.sum(axis=1) ,每一的話用axis=0

  • python裏面平方用**表示, 如2**3=8

for  i in a:

      print(i)

時是按照第一個維度來的,若是是三維,i就是一頁一頁的,若是是二維的,i就是一行一行的.

  • 引用時的區別

a爲一個二維數組,若是a[:,1:2] 獲得的是一個n行1列的二維數組,可是a[:, 1]獲得的是一個n個元素的一維數組

數組的拼接

np.concatenate((a,b), 0) 是把數組a和b按照先後順序連起來拼接,

np.concatenate((a,b),1) 是把數組a和b對應的行拼接起來

例如a=[[1,2],

    [3,4]]

  b=[[5,6],

    [7,8]]

那麼np.concatenate((a,b),1)  就等於

  [ [1,2,5,6],

   [3,4,7,8] ]

  np.concatenate((a,b), 0)就等於

  【【1,2】,

    【3,4】,

    【5,6】,

    【7,8】】

相關文章
相關標籤/搜索