numpy的基本用法與其中的函式

2021-08-18 03:54:24 字數 4434 閱讀 6654

# 引入numpy 重新命名為np

import numpy as np

# 生成乙個numpy中的一維陣列

# numpy中的陣列,儲存的所有資料必須是同質(相同型別)的

a_arr = np.arange(10)

b_arr = np.arange(10)

# 直接使用陣列做向量運算的,會把運算作用到陣列中的每乙個元素中

c_arr = a_arr * b_arr

# 建立資料的幾種方式

# 隨機產生乙個指定維度的隨機數陣列

# 1.維度數  2.各維度大小

data = np.random.rand(2,3)

print(data)

print('維度個數',data.ndim)

print('各維度大小',data.shape)

print('資料型別',data.dtype)

# python中列表轉換numpy中的陣列

list1 = range(10)

print(type(list1))   

# 轉換為陣列

arr = np.array(list1)

print(type(arr))

# 巢狀列表轉換為ndarray

list2 = [range(10),range(10,20)]

type: class 'list' 

[range(0, 10), range(10, 20)]
arr = np.array(list2)

type: class 'numpy.ndarray'

[[ 0  1  2  3  4  5  6  7  8  9]

[10 11 12 13 14 15 16 17 18 19]]

#  zeros() \ ones() \ empty()函式  建立陣列

# 使用zeros()建立指定維度,指定資料型別的陣列

# 1.維度資訊  2.指定型別

# 如果不指定資料型別,預設全部是0.的float64的資料

zeros_arr = np.zeros((2,3),np.int32)

# 使用ones()函式建立指定維度,指定資料類的陣列

# 不指定資料型別,預設是全部為1的float64型別的資料

ones_arr = np.ones((2,3),np.int32)

# 使用empty()函式建立指定為度的陣列

# 不指定資料型別,預設為全部為1的float64的資料

empty_arr = np.empty((2,3))

# 如果想要乙個空字串的陣列,可以指定資料型別為np.str

empty_arr_str = np.empty((2,3),np.str)

# 建立對角線資料全部為1的陣列 數字是幾就是有幾行

identity_arr = np.identity(3,dtype=np.int64)

# 資料型別

# 建立乙個陣列,指定資料型別

zeros_arr = np.zeros((3,3),np.int64)

# astype()函式,轉換陣列中的資料型別

zeros_float_arr = zeros_arr.astype(np.float64)

# 儲存資料為小數型別,轉換為整數型別

data_arr = np.array([1.45,2.34,3.14,4.6,6.6,7.8])

# 將float64資料型別轉換為整數int64型別,只保留整數部分

int_data_arr = data_arr.astype(np.int64)

# 陣列的運算

arr = np.array([[1,2,3],[4,5,6]])

arr2 = np.array([[4,5,6],[7,8,9]])

# 乘法運算   會把運算作用陣列中的每乙個元素中  arr*3

# 乘方 arr**2

# 矩陣(陣列)加減乘除運算 arr+arr  arr-arr2 arr/arr2 arr*arr2

# 條件索引

year_arr = np.array([

[2000,2013,2015],

[2008,2019,2007],

[2010,2012,2017]

])# 篩選出大於等於2015的年份

is_year_after = year_arr >= 2015

print(is_year_after)

# 根據篩選的結果布林資料取出資料

filter_year = year_arr[is_year_after]

# 等同於上面的寫法

filter_year = year_arr[year_arr>=2015]

# 多個條件同時成立

filter_year = year_arr[(year_arr>=2007)&(year_arr%4==0)]

# 多個條件有乙個成立即可 | 或者

filter_year = year_arr[(year_arr>=2007)|(year_arr%2==0)]

# 陣列的切片

arr = np.arange(10)

# 資料中的索引從0開始,依次+1

# 切片

print(arr[2::3])  從索引2開始隔三個數取數

# reshape()把一維陣列轉換為多維陣列

# 轉換之後的資料總個數必須等於轉換之前的個數

arr2 = np.arange(12).reshape(3,4)

# 多維陣列通過組合索引取值

print(arr2[1,1])

# 切片

print(arr2[0:2])

print(arr2[0:2,2:])

print(arr2[:,1:3])

# 陣列的轉置

arr3 = np.random.rand(2,3)

arr4 = arr3.transpose()

arr5 = arr4.reshape(6)

import numpy as np

# 隨機生成乙個二維陣列

arr = np.random.rand(2,3)

# 向上取整  np.ceil(arr)

# 向下取整 np.floor(arr)

# 四捨五入 np.rint(arr)

# 判斷陣列中的元素是否為空 nan  np.isnan(arr)

# 讓陣列中的元素相乘 

arr1 = np.arange(10).reshape(5,2)

arr2 = np.array([

[5,2],

[2,5],

[3,4],

[1,2],

[3,7]

print(arr1*arr2)     print(np.multiply(arr1,arr2))

# 相除

print(np.divide(arr1,arr2。astype(np.float64)))

# 常用的統計函式

arr = np.arange(10).reshape(5,2)

# 相加 print(np.sum(arr))

# 計算平均數 print(np.mean(arr))

# 最大值 print(np.max(arr))

# 最小值 print(np.min(arr))

# 方差 print(np.var(arr))

# 標準差 print(np.std(arr))

# 最大值的下標(索引) print(np.argmax(arr))

# 最小值的下標(索引) print(np.argmin(arr))

# 累加計算  print(np.cumsum(arr))

# 累乘  print(np.cumprod(arr))

# where() 函式

arr = np.random.rand(2,3)

# 更改陣列中的資料

arr[0,1] = 1

# where()函式

# 1.條件  2.條件成立時取得資料  3.條件不成立時 取得資料

print(np.where(arr>0.5,1,0))

# any()函式 表示陣列中至少有乙個符合條件的元素,返回true,否則返回false

print(np.any(arr>=1))

# all()函式 表示陣列中的元素必須全部符合條件時,返回true,否則返回false

print(np.all(arr>=0.5))

# unique() 返回陣列中的唯一值,返回乙個排好序的一維陣列

arr1 = np.array([[4,6,3],[1,2,3],[4,5,6]])

print(np.unique(arr1))

Numpy基本用法 ndarray的資料型別

print 生成指定元素型別的陣列 設定dtype屬性 x numpy.array 1,2.6,3 dtype numpy.int64 print x 元素型別為int64 print x.dtype x numpy.array 1,2,3 dtype numpy.float64 print x 元...

Python基礎之Numpy的基本用法詳解

a np.array 1,2,3,4,5,6,7,8,9,10,11 一維陣列 b np.array 1,2 3,4 二維陣列 numpy.arange start,stop,step,dtype start預設0,step預設1 c np.arange 0,10,1,dtype int np.ar...

python系列 numpy中的tile函式

在看機器學習實戰這本書時,遇到numpy.tile a,b 函式,愣是沒看懂怎麼回事,裝了numpy模組後,實驗了幾把,原來是這樣子 重複a,b次,這裡的b可以時int型別也可以是遠組型別。python view plain copy import numpy numpy.tile 0,0 5 在列...