numpy
:提供了乙個在python中做科學計算的基礎庫,重在數值計算,主要用於多維陣列(矩陣)處理的庫。用來儲存和處理大型矩陣,比python自身的巢狀列表結構要高效的多。本身是由c語言開發,是個很基礎的擴充套件,python其餘的科學計算擴充套件大部分都是以此為基礎。
ndarray多維陣列(n
dimension array)
numpy
陣列是乙個多維的陣列物件(矩陣),稱為ndarray,具有高效的算術運算能力和複雜的廣播能力,並具有執行速度快和節省空間的特點。
注意:ndarray的下標從0開始,且陣列裡的所有元素必須是相同型別,每乙個ndarray都擁有以下屬性
通過隨機抽樣(numpy.random) 生成隨機資料。
示例**:
1. np.random.rand()
生成指定維度的隨機多維浮點型陣列,資料固定區間 0.0 ~ 1.0
import
numpy
asnp
# 生成指定維度大小(3行4列)的隨機多維浮點型陣列(二維),rand固定區間0.0 ~ 1.0
arr =np.random.rand(3,
4)print(arr)
print(type(arr))
[[ 0.09371338 0.06273976 0.22748452 0.49557778]
[ 0.30840042 0.35659161 0.54995724 0.018144 ]
[ 0.94551493 0.70916088 0.58877255 0.90435672]]
print(
'維度個數: '
,arr.ndim)
print(
'維度大小: '
,arr.shape)
print(
'資料型別: '
,arr.dtype)
維度個數: 2
維度大小: (3, 4)
資料型別: float64
2. np.random.uniform()
生成指定維度大小的隨機多維浮點型陣列,可以指定數字區間(均勻分布)
# 生成指定維度大小(3行4列)的隨機多維浮點型陣列(二維),uniform()可以指定區間(-1, 5)
arr =np.random.uniform(-1,
5, size = (3,
4))
# 'size='
可省略
print(arr)
print(type(arr))
[[ 2.25275308 1.67484038 -0.03161878 -0.44635706]
[ 1.35459097 1.66294159 2.47419548-0.51144655]
[ 1.43987571 4.71505054 4.33634358 2.48202309]]
print(
'維度個數: '
,arr.ndim)
print(
'維度大小: '
,arr.shape)
print(
'資料型別: '
,arr.dtype)
維度個數: 2
維度大小: (3, 4)
資料型別: float64
3. np.random.randint()
生成指定維度大小的隨機多維整型陣列,可以指定數字區間
# 生成指定維度大小(3行4列)的隨機多維整型資料(二維),randint()可以指定區間(-1, 5)
arr =np.random.randint(-1,
5, size = (3,
4))
# 'size='
可省略
print(arr)
print(type(arr))
[[ 1 3 0 1]
[ 1 4 4 3]
[ 2 0-1 -1]]
print(
'維度個數: '
,arr.ndim)
print(
'維度大小: '
,arr.shape)
print(
'資料型別: '
,arr.dtype)
維度個數: 2
維度大小: (3, 4)
資料型別: float64
1. np.array(list,dtype)
list
為 序列型物件(list)、巢狀序列物件(list of list),dtype表示資料型別 (int、float、str)。
示例**:
# list
序列轉換為 ndarray
arr =np.array(range(
10))
print(arr)
# ndarray資料
print(arr.ndim)
# 維度個數
print(arr.shape)
# 維度大小
執行結果: [
0123
4567
89]
1 (10,)
# list oflist
巢狀序列轉換為ndarray
lis_lis =[range(
10), range(
10)]
arr_2d =np.array(lis_lis)
print(arr_2d)
# ndarray資料
print(arr_2d.ndim)
# 維度個數
print(arr_2d.shape)
# 維度大小
執行結果:
[[01
2345
6789
] [0
1234
5678
9]] 2
(2,
10)
2. np.zeros()
指定大小的全0陣列。注意:第乙個引數是元組,用來指定大小,如(3, 4),第二個引數可以指定型別,如int,預設為float。
zeros_arr= np.zeros((3,
4))[[
0.0.
0.0.]
[ 0.
0.0.0.]
[ 0.0.
0.0.]]
3. np.ones()
指定大小的全1陣列。注意:第乙個引數是元組,用來指定大小,如(3, 4),第二個引數可以指定型別,如int,預設為float。
ones_arr =np.ones((2,
3))[[
1.1.1.]
[ 1.1.
1.]]
4. np.arange()
arange()
類似python 的 range() ,用來建立乙個一維ndarray 陣列,結果等同於 np.array(range())。
arr =np.arange(
15)
# 0 ~ 14
、共15個元素的 一維陣列
print(arr)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
arr =np.arange(
10,
20, 2)
# 10 ~ 19
、步長為2、共5個元素的一維陣列
print(arr)
[10 12 14 16 18]
5. reshape()
reshape()
將 重新調整陣列的維度。
arr =np.arange(15)
print(arr.reshape(3,
5))
# 3x5
個元素的 二維陣列
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
print(arr.reshape(1,
3, 5))
# 1x3x5
個元素的 三維陣列
[[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]]
6. random.shuffle()
random.shuffle()
將打亂陣列序列(隨機重新排列)。
arr =np.arange(15)
print(arr)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
打亂原陣列的元素序列
np.random.shuffle(arr)
print(arr)
[ 5 8 1 7 4 0 12 9 11 213 14 10 3 6]
再配合reshape()使用
print(arr.reshape(3,
5))[[ 5 8 1 7 4]
[ 0 12 9 11 2]
[13 14 10 3 6]]
資料分析 numpy基礎
目錄 numpy是高效能科學計算和資料分析的基礎包。它也是pandas等其他資料分析的工具的基礎,基本所有資料分析的包都用過它。numpy為python帶來了真正的多維陣列功能,並且提供了豐富的函式庫處理這些陣列。它將常用的數學函式都支援向量化運算,使得這些數學函式能夠直接對陣列進行操作,將本來需要...
python資料分析 numpy基礎(一)
1 建立numpy陣列 import numpy as np print 使用普通一維陣列生成numpy一維陣列 data 6,7.5,8,0,1 arr np.array data print arr print 列印元素型別 print arr.dtype print print 使用普通二維陣...
資料分析 numpy基礎(二)
matr1 np.mat 1 2 3 4 5 6 7 8 9 用mat函式建立矩陣 matr2 np.matrix 1,2,3 4,5,6 7,8,9 用matrix函式建立矩陣 np.bmat arr1 arr2 arr1 arr2 用bmat函式合成矩陣 矩陣相乘 matr1 matr2 矩陣元...