資料分析 numpy陣列 01

2022-06-27 16:39:10 字數 4589 閱讀 6133

預備知識:

能夠乙個接乙個地儲存在計算機儲存器的一塊連續區域內的表示方法稱為陣列array

資料分析 numpy

numpy是python語言的乙個拓展程式庫,支援大量的維度陣列與矩陣運算,而且numpy針對於陣列運算提供大量的數學函式庫。

numpy 是乙個執行速度非常快的數學庫,主要用於陣列計算:

1、乙個強大的n維陣列物件 ndarray

2、廣播功能函式

3、整合 c/c++/fortran **的工具    

4、線性代數、傅利葉變換、隨機數生成等功能

1、ndarray物件

numpy.array(object, dtype = none, copy = true, order = none, subok = false, ndmin = 0)
n維陣列物件ndarray,由一系列同型別資料的集合。

ndarray是用於存放同型別元素的多維陣列,每個元素在記憶體中都有相同大小的儲存區域

ndarray的陣列屬性,

1、維數稱為秩rank。二位陣列相當於兩個一維陣列,而每乙個一維陣列的每個元素又可以當做乙個一維陣列,所以一維陣列就是numpy的軸,第乙個軸相當於底層陣列,第二軸相當於底層陣列裡的陣列。而軸的數量-----秩rank,就是陣列的維數!!!軸axis=0,表示沿著第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿著第1軸進行操作,即對每一行進行操作???

2、ndarray.itemsize,以位元組的形式返回陣列中每乙個元素的大小。

3、ndarray.flags: 返回 ndarray 物件的記憶體資訊,包含以下屬性:

屬性描述

c_contiguous (c)

資料是在乙個單一的c風格的連續段中

f_contiguous (f)

資料是在乙個單一的fortran風格的連續段中

owndata (o)

陣列擁有它所使用的記憶體或從另乙個物件中借用它

writeable (w)

資料區域可以被寫入,將該值設定為 false,則資料為唯讀

aligned (a)

資料和所有元素都適當地對齊到硬體上

updateifcopy (u)

這個陣列是其它陣列的乙個副本,當這個陣列被釋放時,原陣列的內容將被更新

ndarray的組成:

屬性說明

ndarray.ndim

秩,即軸的數量或維度的數量

ndarray.shape

陣列的維度,對於矩陣,n 行 m 列

ndarray.size

陣列元素的總個數,相當於 .shape 中 n*m 的值

ndarray.dtype

ndarray 物件的元素型別

ndarray.itemsize

ndarray 物件中每個元素的大小,以位元組為單位

ndarray.flags

ndarray 物件的記憶體資訊

ndarray.real

ndarray元素的實部

ndarray.imag

ndarray 元素的虛部

ndarray.data

包含實際陣列元素的緩衝區,由於一般通過陣列的索引獲取元素,所以通常不需要使用這個屬性。

字元對應型別

b布林型

i(有符號) 整型

u無符號整型 integer

f浮點型

c複數浮點型

mtimedelta(時間間隔)

mdatetime(日期時間)

o(python) 物件

s, a

(byte-)字串

uunicode

v原始資料 (void)

2、ndarray建立陣列

1、numpy.empty,陣列元素為隨機值,因為它們未初始化

2、numpy.zeros,建立指定大小的陣列,陣列元素以 0 來填充

3、numpy.ones,建立指定形狀的陣列,陣列元素以 1來填充。

4、numpy.asarray,numpy.asarray類似 numpy.array,但 numpy.asarray 只有三個引數,比 numpy.array 少兩個

5、numpy.frombuffer,numpy.frombuffer 用於實現動態陣列

6、numpy.fromiter,numpy.fromiter 方法從可迭代物件中建立 ndarray 物件,返回一維陣列。

7、從一定範圍值獲取array

1、numpy.empty,陣列元素為隨機值,因為它們未初始化

numpy.empty(shape, dtype = float, order = '

c')

2、numpy.zeros,建立指定大小的陣列,陣列元素以 0 來填充

numpy.zeros(shape, dtype = float, order = '

c')

import

numpy as np #

預設為浮點數

x = np.zeros(5)

print

(x)

#設定型別為整數

y = np.zeros((5,), dtype =np.int)

print

(y)

#自定義型別!!!輸出結果:[[(0,0)(0,0)][(0,0)(0,0)]]!!!

z = np.zeros((2,2), dtype = [('

x', '

i4'), ('

y', 'i4'

)])

print(z)

3、numpy.ones,建立指定形狀的陣列,陣列元素以 1 來填充。例項和上面的類似。4、numpy.asarray,numpy.asarray類似 numpy.array,但 numpy.asarray 只有三個,比 numpy.array 少兩個。

numpy.asarray(a, dtype = none, order = none)
5、numpy.frombuffer,numpy.frombuffer 用於實現動態陣列。numpy.frombuffer 接受buffer 輸入引數,buffer可以是任何物件,以流的形式讀入轉化成 ndarray 物件。

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
注意:buffer 是字串的時候,python3 預設 str 是 unicode 型別,所以要轉成 bytestring 在原 str 前加上 b

6、numpy.fromiter,numpy.fromiter 方法從可迭代物件中建立 ndarray 物件,返回一維陣列。

numpy.fromiter(iterable, dtype, count=-1)

import

numpy as np #

使用 range 函式建立列表物件

list=range(5)

it=iter(list) #

使用迭代器建立 ndarray

x=np.fromiter(it, dtype=float)

print(x)

7、從一定範圍值獲取arraynumpy.arange,numpy.arange(start,stop,step,dtype)numpy.linspace(等差數列),np.linspace(start,stop,num=50,endpoint=true,retstep=false,dtype=none)

numpy.logspace(等比數列),np.logspace(start,stop,num=50,endpoint=true,base

=10.0

,dtype=none):base 引數意思是取對數的時候 log 的下標

import

numpy as np

#預設底數是 10,1.0就是10,2.0就是100!!!

a = np.logspace(1.0, 2.0, num = 10)

print (a)

資料分析 numpy 01

import numpy as np arr1 np.array 1 2,3 陣列的秩 軸的個數稱為秩 軸 axes 是陣列的維度 print arr1.ndim 結果為 1 結論 一維陣列秩為1,二維陣列秩為2 陣列的維度 print arr1.shape,len arr1.shape 3,2 返...

numpy資料分析

2020 11 2 import array arr array.array i list range 10 i表示整型,生成序列後不能改變資料型別 多維陣列ndarray方便處理多維度運算,運算效率高 nparr np.array list range 10 修改值,浮點數取整數段 nparr 2...

資料分析 Numpy

什麼是numpy numpy這個詞 於兩個單詞 numerical和python。numpy是python中的乙個運算速度非常快的乙個數學庫,它非常重視陣列,很多的資料科學的包都是依賴於numpy的。它允許你在python中進行向量和矩陣計算,並且由於許多底層函式實際上是用c編寫的,因此你可以體驗在...