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】】

相关文章
相关标签/搜索