欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:Numpy功能庫(kù)的學(xué)習(xí)1

柚子快報(bào)激活碼778899分享:Numpy功能庫(kù)的學(xué)習(xí)1

http://yzkb.51969.com/

在Numpy基礎(chǔ)部分,我們會(huì)討論一些數(shù)據(jù)分析的底層數(shù)據(jù)結(jié)構(gòu)數(shù)組及相關(guān)知識(shí),包括以下內(nèi)容

Numpy的引入以及與原生python在科學(xué)計(jì)算上的對(duì)比 創(chuàng)建Ndarray Numpy數(shù)據(jù)類型 數(shù)組的索引和切片

一、Numpy的引入以及與原生python在科學(xué)計(jì)算上的對(duì)比

1.1 通過(guò)矩陣/向量的按位運(yùn)算比較Numpy和原生Pyhton的性能差異

需求:矩陣的按位相加 [0,1,4] + [0,1,8] = [0,2,12]

1、傳統(tǒng)Python的實(shí)現(xiàn)

list1 =[1,2,3,4]

list2 = [2,3,4,5]

#循環(huán)實(shí)現(xiàn)

list_total?= []

for i in len(list1):

? ? ? ? list_total.append(list1[i]+list[2])

print(list_total)

#推導(dǎo)式實(shí)現(xiàn)

[list1[i]+list2[i] for i in len(list1[i])]

#使用函數(shù)實(shí)現(xiàn)

def creat_list(m,n):

? ? ? ? return [item **n for item in range(m)]?

def pySum(n):

? ? ? ? lista = creat_list(n,2)

? ? ? ? listb =creat_list(n,3)

? ? ? ? return [list1[i] + list2[i] for i in range(n)]?

pySum(3)

2、Numpy實(shí)現(xiàn)

#載入功能庫(kù)

import numpy as np

def npSum(n):

? ? ? ? a = np.arange(n)**2

? ? ? ? b = np.arange(n)**3

? ? ? ? return a+b

npSum(3)

3、性能對(duì)比

%timeit pySum(1000) # %timeit是精確計(jì)算代碼執(zhí)行時(shí)長(zhǎng)的魔法命令

%timeit npSum(1000)

4、Numpy的數(shù)據(jù)溢出問(wèn)題

默認(rèn)情況下,在windows操作系統(tǒng)下,用numpy創(chuàng)建的整數(shù)數(shù)組,其數(shù)據(jù)類型是int32(能容納的最大數(shù)字是2^31 - 1),如果數(shù)值超過(guò)該范圍,就會(huì)產(chǎn)生溢出的問(wèn)題,解決方法是將數(shù)據(jù)類型設(shè)置為更大的數(shù)據(jù)類型int64

def npSum64(n): ? ? # n是數(shù)組的元素?cái)?shù)量 ? ? a = np.arange(n, dtype = np.int64) ** 2 ? ? b = np.arange(n, dtype = np.int64) ** 3 ? ? return a + b

npSum64(10000)[-5:]

1.2 Numpy是什么

NumPy的全名為Numeric Python,是一個(gè)開源的Python科學(xué)計(jì)算庫(kù),它包括:

一個(gè)強(qiáng)大的N維數(shù)組對(duì)象ndrray; 比較成熟的函數(shù)庫(kù); 用于整合C/C++和Fortran代碼的工具包; 實(shí)用的線性代數(shù)、傅里葉變換和隨機(jī)數(shù)生成函數(shù)

NumPy支持高維度數(shù)組與矩陣運(yùn)算,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)。

Numpy成為事實(shí)上的Scipy、Pandas、Scikit-Learn、Tensorflow、PaddlePaddle等框架的"通用底層語(yǔ)言"

Numpy的array和Python的List的一個(gè)區(qū)別,是它元素必須都是同一種數(shù)據(jù)類型,比如都是數(shù)字int類型,這也是Numpy高性能的一個(gè)原因;

1.3 Python的缺點(diǎn)和Numpy的改進(jìn)

原生Python中用列表(list)可以用來(lái)當(dāng)作數(shù)組使用,但是列表中所保存的是對(duì)象(任意對(duì)象)的指針。對(duì)于數(shù)值運(yùn)算來(lái)說(shuō)這種結(jié)構(gòu)顯然比較浪費(fèi)內(nèi)存和CPU計(jì)算時(shí)間。

NumPy提供了以下對(duì)象,解決標(biāo)準(zhǔn)Python的不足:①ndarray(N-dimensional array object)N維數(shù)組(簡(jiǎn)稱數(shù)組)對(duì)象,存儲(chǔ)單一數(shù)據(jù)類型的N維數(shù)組②ufunc(universal function object)通用函數(shù)對(duì)象,對(duì)數(shù)組進(jìn)行處理的函數(shù)。

1.4 什么是Ndarray

NumPy中的ndarray是一個(gè)多維數(shù)組對(duì)象,它是一個(gè)快速而靈活的大數(shù)據(jù)集容器,它由兩部分組成:①實(shí)際的數(shù)據(jù);②描述這些數(shù)據(jù)的元數(shù)據(jù)。大部分的數(shù)組操作僅僅修改元數(shù)據(jù)部分,而不改變底層的實(shí)際數(shù)據(jù)。

二、創(chuàng)建Ndarray

2.1 創(chuàng)建一維數(shù)組

1、通過(guò)np.array方法

np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

說(shuō)明:(1)object: 用來(lái)構(gòu)建的對(duì)象.可以是 list tuple range() iterable ...(2)dtype: 數(shù)組每個(gè)值的數(shù)據(jù)類型,如果不設(shè)定,會(huì)根據(jù)數(shù)組的元素自動(dòng)選擇兼容性最好的類型

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

print(arr1)

2、數(shù)組的維度和數(shù)據(jù)類型

ndarray.ndim - 返回?cái)?shù)組維度的數(shù)量(軸) ndarray.shape - 返回?cái)?shù)組的形狀,即數(shù)組在每個(gè)維度(軸)上的元素?cái)?shù)量,結(jié)果是一個(gè)元組 ndarray.dtype - 返回?cái)?shù)組的數(shù)據(jù)類型

arr1.ndim

# arr1是一個(gè)一維數(shù)組(數(shù)組的維度數(shù)量是1)

arr1.shape

#數(shù)組是一個(gè)一維數(shù)組,該維度上的元素?cái)?shù)量是5

type(arr1.shape)

arr1.dtype?

數(shù)組的數(shù)據(jù)類型由數(shù)組中兼容性最強(qiáng)的數(shù)據(jù)決定

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

arr2

arr2.dtype

3、使用用np.arange和np.linspace創(chuàng)建等差數(shù)組

1)np.arange用于創(chuàng)建數(shù)字序列構(gòu)成的數(shù)組,和range非常類似

np.arange(start,stop,step,dtype)

說(shuō)明:

(1)start: 起始索引

(2)stop: 結(jié)束索引

(3)step : 步長(zhǎng)值

np.arange可以使用浮點(diǎn)數(shù)作為參數(shù)

返回一個(gè)左閉右開的區(qū)間,結(jié)果是一個(gè)由等差數(shù)列構(gòu)成的數(shù)組,和range最大的區(qū)別在于三個(gè)參數(shù)均可以使用浮點(diǎn)數(shù)

arr4 = np.array(1,2,0.1)

print(arr4)

2)np.linspace用于創(chuàng)建等差數(shù)組,可以得到閉區(qū)間

np.linspace( ? ? start, ? ? ? ? ? ?# 起始值 ? ? stop, ? ? ? ? ? ? # 結(jié)束值 ? ? num=50, ? ? ? ? ? # 要?jiǎng)澐值亩螖?shù)(總共在起始和結(jié)束之間有多少個(gè)值) ? ? endpoint=True, ? ? retstep=False, ? ? dtype=None, ? ? axis=0, )

說(shuō)明:(1)start: 起始值(2)stop: 結(jié)束值(3)num: 要?jiǎng)澐值亩螖?shù)

返回一個(gè)將指定的區(qū)間劃分為若干段的數(shù)組,返回結(jié)果是一個(gè)閉區(qū)間的等差數(shù)組

arr5 = np.linspace(1,2,50)

print(arr5)

2.2 創(chuàng)建多維數(shù)組

1、創(chuàng)建二維數(shù)組

使用np.array創(chuàng)建創(chuàng)建二維數(shù)組

arr6 = np.array(

[np.array([1,2,3]),

np.array([4,5,6]),

np.array([7,8,9])

)

print(arr6)

print(arr6.ndim)

print(arr6.shape)

使用np.array結(jié)合np.arange進(jìn)行創(chuàng)建

arr7?= np.array( ? ? [ ? ? ? ? [1,2,3,4], ? ? ? ? (5,6,7,8), ? ? ? ? range(9, 13) ? ? ] )

print(arr7)

2、用占位方法創(chuàng)建數(shù)組通常,數(shù)組的元素最初是未知的,但它的大小是已知的。因此,NumPy提供了幾個(gè)函數(shù)來(lái)創(chuàng)建具有初始占位符內(nèi)容的數(shù)組。這就減少了數(shù)組增長(zhǎng)的必要,因?yàn)閿?shù)組增長(zhǎng)的操作花費(fèi)很大。

np.zeros/np.zeros_like 全0數(shù)組

np.zeros(shape, dtype=float, order='C', *, like=None) ? ?

說(shuō)明:(1)shape:維度信息,多維需要放到元組中(2)dtype:數(shù)據(jù)類型創(chuàng)建一個(gè)形狀與arr5相同,但數(shù)據(jù)全部為0的數(shù)組(3)like:用來(lái)進(jìn)行參考的類數(shù)組對(duì)象,如果設(shè)置,則生成的數(shù)組的形狀和數(shù)據(jù)類型會(huì)和參考的類數(shù)組對(duì)象一致

# 4行4列的全0數(shù)組 a1 = np.zeros((4, 4)) print(a1)

print(a1.dtype)

a1x = np.zeros((4, 4), dtype = int) # 當(dāng)設(shè)定的數(shù)據(jù)類型是原生Python數(shù)據(jù)類型時(shí),Numpy會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換為對(duì)應(yīng)的Numpy數(shù)據(jù)類型

arr6x = np.zeros_like(arr6)

arr6x # 形狀和數(shù)據(jù)類型都與參考的類數(shù)組對(duì)象一致的全0數(shù)組

np.ones/np.ones_like 全1數(shù)組

a2 = np.ones((4, 5), dtype = int) a2

np.full 全填充數(shù)組,可以用指定的值填充

np.full(shape, fill_value, dtype=None, order='C', *, like=None)

說(shuō)明:(1)shape : 維度信息,多維需要放到元組中(2)fill_value : 填充的內(nèi)容(不一定是數(shù)值)(3)dtype : 數(shù)據(jù)類型

# 形狀是3*3,內(nèi)容全部是7的數(shù)組 a3 = np.full((3, 3), ?7) a3

np.full((3, 4), 'Hello')

np.eye 對(duì)角矩陣,對(duì)角線是1,其他位置是0

np.eye(N, M=None, k=0, dtype=, order='C', *, like=None)

說(shuō)明:(1)N,M : 行列的元素?cái)?shù)量(2)k : 對(duì)角線的位置(3)dtype : 數(shù)據(jù)類型

k決定對(duì)角線的位置,該值為正,對(duì)角線向右偏移,反之向左偏移

np.eye(7)

np.eye(5, 7, dtype = int)

3、用np.random生成隨機(jī)數(shù)組

1)按照指定的分布特征構(gòu)或指定的數(shù)據(jù)范圍建隨機(jī)數(shù)組

np.random.rand 生成均勻分布的,范圍在[0,1)之間的小數(shù)構(gòu)成的隨機(jī)數(shù)組

np.random.randn 返回服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)組(均值為0,標(biāo)準(zhǔn)差為1)

# 4行5列的0~1之間的隨機(jī)小數(shù)數(shù)組 np.random.rand(4, 5).round(3) # round用來(lái)控制數(shù)組中的元素的小數(shù)位數(shù)

a4 = np.random.randn(10000)

a4

通過(guò)可視化方式觀察數(shù)組的分布形態(tài)

import matplotlib.pyplot as plt # 繪圖模塊

plt.hist(a4, bins = 100 , color = 'red') plt.show()

2)按照指定的范圍生成隨機(jī)數(shù)組

np.random.randint 生成指定范圍的隨機(jī)整數(shù)數(shù)組 np.random.uniform 生成指定范圍的隨機(jī)浮點(diǎn)數(shù)組

np.random.randint(low, high=None, size=None, dtype=int)

np.random.uniform(low=0.0, high=1.0, size=None)

說(shuō)明:(1)low,high : 數(shù)組的最小最大值(2)size : 數(shù)組的維度信息

# 4名學(xué)生,5門功課的成績(jī)(成績(jī)?cè)?0~100分之間) a6 = np.random.randint(60, 101, (4, 5))

a6

np.random.uniform(60, 101, (4,5)).round() #round方法對(duì)這些浮點(diǎn)數(shù)進(jìn)行四舍五入到最近的整數(shù)

4、創(chuàng)建高維數(shù)組

1)使用使用ones/zeros之類的方法

a7 = np.zeros((3, 3, 3)) a7 # 三層三行三列,類似魔方的結(jié)構(gòu)

a7.ndim

a7.shape

2)reshape方法

np.reshape(a, newshape, order='C') ? ?

a.reshape(shape, order='C')

說(shuō)明:(1)a : 要調(diào)整維度的數(shù)組(2)newshape : 新的維度

np.arange(1,25)

a9 = np.arange(1,25).reshape((4,6))

a9

三、Numpy數(shù)據(jù)類型

Python支持的數(shù)據(jù)類型不足以滿足科學(xué)計(jì)算的需求,因此NumPy添加了很多其他的數(shù)據(jù)類型,它們占用的內(nèi)存空間也是不同的。在NumPy中,大部分?jǐn)?shù)據(jù)類型名是以數(shù)字結(jié)尾的,這個(gè)數(shù)字表示其在內(nèi)存中占用的位數(shù)。

名稱描述bool_布爾型數(shù)據(jù)類型(True 或者 False)int_默認(rèn)的整數(shù)類型(類似于 C 語(yǔ)言中的 long,int32 或 int64)intc與 C 的 int 類型一樣,一般是 int32 或 int 64intp用于索引的整數(shù)類型(類似于 C 的 ssize_t,一般情況下仍然是 int32 或 int64)int8字節(jié)(-128 to 127)int16整數(shù)(-32768 to 32767)int32整數(shù)(-2147483648 to 2147483647)int64整數(shù)(-9223372036854775808 to 9223372036854775807)uint8無(wú)符號(hào)整數(shù)(0 to 255)uint16無(wú)符號(hào)整數(shù)(0 to 65535)uint32無(wú)符號(hào)整數(shù)(0 to 4294967295)uint64無(wú)符號(hào)整數(shù)(0 to 18446744073709551615)float_float64 類型的簡(jiǎn)寫float16半精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,5 個(gè)指數(shù)位,10 個(gè)尾數(shù)位float32單精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,8 個(gè)指數(shù)位,23 個(gè)尾數(shù)位float64雙精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,11 個(gè)指數(shù)位,52 個(gè)尾數(shù)位complex_complex128 類型的簡(jiǎn)寫,即 128 位復(fù)數(shù)complex64復(fù)數(shù),表示雙 32 位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分)complex128復(fù)數(shù),表示雙 64 位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分)

非數(shù)組對(duì)象默認(rèn)的數(shù)據(jù)類型是python原生數(shù)據(jù)類型,數(shù)組對(duì)象默認(rèn)的數(shù)據(jù)類型是Numpy數(shù)據(jù)類型

注意溢出和轉(zhuǎn)換的問(wèn)題

a = 40 # 創(chuàng)建非數(shù)組對(duì)象時(shí),會(huì)自動(dòng)使用原生Python數(shù)據(jù)類型

type(a)

b = np.int8(a)

#將原生的python數(shù)據(jù)類型轉(zhuǎn)換為numpy的數(shù)據(jù)類型

b

type(b)

c = 2**20

c

np.int8(c)

np.int32(c)

數(shù)組轉(zhuǎn)為python原生數(shù)據(jù)類型常用方法有兩種

推導(dǎo)式 [int(item) for item in ndadday]

數(shù)組的tolist方法 ndarray.tolist()

a01x = mp.array([1,2,3,4])

list01x = [int(item) for item in? a01x]

for item in lista01: ? ? print(type(item))

通過(guò)ndarray.tolist()方法

list01y = a01.tolist()

list01y?

#tolist會(huì)自動(dòng)將numpy的數(shù)據(jù)類型轉(zhuǎn)換為對(duì)應(yīng)的原生python數(shù)據(jù)類型

四、數(shù)組的索引和切片

索引即通過(guò)一個(gè)無(wú)符號(hào)整數(shù)值獲取數(shù)組里的值。Python索引是從0的位置開始。切片即對(duì)數(shù)組里某個(gè)片段的描述。

4.1 一維數(shù)組的索引和切片

一維數(shù)組的索引和切片與list類似

1、一維數(shù)組的索引(從0開始的序列,或者從-1開始的反向序列)

list01 = list(range(10))

print(list01)

list01[0]#第一個(gè)元素

list[-1] #最后一個(gè)元素

a01 = np.arange(10)

a01

a01[0] #第一個(gè)元素

a01[-1] #最后一個(gè)元素

# list01[10] # IndexError: list index out of range # 列表索引超出有效范圍

# a01[10] # IndexError: index 10 is out of bounds for axis 0 with size 10 # 數(shù)組的索引超出有效范圍

2、一維數(shù)組的切片:和列表一致

list01[1:-1]

a01[1:-1]

list01[::-1]#倒序

a01[::-1]

4.2 多維數(shù)組的索引和切片

1、多維數(shù)組的索引:一維索引和多維索引以一維數(shù)組的索引方式訪問(wèn)時(shí),獲取的是一個(gè)一維數(shù)組在高維數(shù)組中,用一維索引進(jìn)行訪問(wèn),得到是維度-1的子數(shù)組

a02 = np.arange(1,10).reshape((3,3))

a02?

a02[1][1]

a02[1]

多維數(shù)組中,如果使用嵌套的一維索引進(jìn)行訪問(wèn),會(huì)在內(nèi)存中生成臨時(shí)的子數(shù)組,降低效率,通常會(huì)使用多維索引進(jìn)行訪問(wèn):在索引中區(qū)分維度信息

二維數(shù)組: array[行的索引, 列的索引]

高維數(shù)組: array[維度1上的索引, 維度2上的索引,....,維度n上的索引]

在索引中用 , 區(qū)分維度

a02[1,1]

# list02[1, 1] # 列表無(wú)法使用多維索引 # TypeError: list indices must be integers or slices, not tuple

高維數(shù)組的索引

a03 = np.random.randint(1, 101, 27).reshape((3, 3, 3)) a03

# 第二層、第二行、第三列的元素 a03[1, 1, 2]

a03[1, 1, -1]

2、多維數(shù)組的切片:在一維的基礎(chǔ)上增加對(duì)維度的處理

一維數(shù)組的切片:array[start:stop:step]

多維數(shù)組的切片:array[start1:stop1:step1, start2:stop2:step2, ... startn:stopn:stepn]

多維數(shù)組切片在一維數(shù)組切片的基礎(chǔ)上增加對(duì)維度的處理,用 , 分隔維度, 用 :分隔切片的需求

a04 = np.arange(1, 36).reshape((5, 7)) a04

# 返回?cái)?shù)組的前兩行 a04[0:2, 0:100] # 返回所有的列

# 簡(jiǎn)化 a04[:2, :]

# 繼續(xù)簡(jiǎn)化:靠后的維度不需要進(jìn)行切片時(shí),可以省略對(duì)該維度的書寫 a04[:2]

多維數(shù)組切片在操作時(shí)可以省略靠后的維度,默認(rèn)全部選取,但不能省略靠前的維度

a04[:, -2:]

a04[:, 5:]

在不同的維度上,索引和切片可以混合使用

a04

a04[1:-1] # 行上截頭去尾

a04[1:-1, 2]

a04[::-1] # 行上倒置

a04[:, ::-1] # 列上倒置

a04[::-1, ::-1] # 行和列同時(shí)倒置

提取指定的位置并修改

# 修改:賦值 a04[2:4, 2:4] = 1

# 用2行2列的數(shù)組進(jìn)行賦值 a04[2:4, 2:4] = np.array([[1,2], [3,4]])

4.3 花式索引(魔法索引)

花式索引:用整數(shù)構(gòu)成的列表/數(shù)組 作為數(shù)組的索引進(jìn)行元素的提取 --> 可以按照特定的位置和形狀進(jìn)行元素的訪問(wèn)和重塑

1、一維數(shù)組的花式索引

按照給定的索引中的列表/數(shù)組中的索引位置從原始數(shù)組中提取元素,再按照列表/數(shù)組的形狀生成一個(gè)新的數(shù)組

x1 = np.arange(10) x1

x1[1], x1[2], x1[7] # 結(jié)果是一個(gè)元組

np.array([x1[1], x1[2], x1[7]]) # 結(jié)果是數(shù)組

# x1[1, 2, 7] # IndexError: too many indices for array: array is 1-dimensional, but 3 were indexed # 在一維數(shù)組上無(wú)法使用多維索引

x1[[1, 2, 7]] # 用整數(shù)構(gòu)成的列表/數(shù)組作為索引進(jìn)行元素的提取,可以不按照固定的規(guī)律進(jìn)行提取

x1[[7,1,2,2]]

花式索引指需要保證索引的值在有效的索引范圍之內(nèi)即可,不用考慮順序或是否重復(fù)的問(wèn)題 花式索引相當(dāng)于按照指定的索引從原始的數(shù)組中提取元素(可以重復(fù)),然后建構(gòu)一個(gè)新的數(shù)組

# x1[[10,1,10]] # IndexError: index 10 is out of bounds for axis 0 with size 10 # 不在有效索引范圍之內(nèi)

index1 = np.array( ? ? [ ? ? ? ? [2, 0], ? ? ? ? [1, 3] ? ? ] )

x1[index1]

x1x = x1 * 10

x1x

一維數(shù)組的花式索引:按照給定的索引中數(shù)組/列表的索引位置從原始數(shù)組中提取元素,再按照索引中的數(shù)組/列表的形狀構(gòu)成一個(gè)新的數(shù)組

2、多維數(shù)組的花式索引

x2 = np.arange(20).reshape((4, 5))

x2

# 提取第一行和第二行 x2[:2]

x2[[0, 1]] # 花式索引

# 提取第二、四、五列 # x2[[1, 3, 4]] # IndexError: index 4 is out of bounds for axis 0 with size 4 # 花式索引也必須遵循多維索引的原則:靠后的維度不處理可以省略書寫,靠前的維度不處理不能省略書寫

x2[:, [1, 3, 4]] # 行:所有的行,列:指定索引的列

????x2[[0,2,3], [0,1,4]]

#行的0與列的0對(duì)應(yīng)

二維數(shù)組在行、列上同時(shí)使用花式索引,是提取行列索引位置構(gòu)成的坐標(biāo)上的元素,再用這些元素構(gòu)成一個(gè)新的數(shù)組,結(jié)果是一個(gè)一維數(shù)組

# x2[[0,1], [0,2,4]] # IndexError: shape mismatch: indexing arrays could not be broadcast together with shapes (2,) (3,)? # 在行和列上同時(shí)使用花式索引,要注意行列上的元素?cái)?shù)量要保持匹配,否則就會(huì)報(bào)錯(cuò)

4.4 布爾索引(條件索引)

條件索引:使用條件表達(dá)式作為數(shù)組的索引 --> 按照特定條件對(duì)數(shù)據(jù)進(jìn)行篩選

1、一維數(shù)組的條件索引

針對(duì)數(shù)組的比較運(yùn)算

a1 = np.arange(10)

找出數(shù)組中>4的數(shù)字,返回一個(gè)新的數(shù)組

數(shù)組可以直接進(jìn)行運(yùn)算

a1 + 4

a1 ** 2

a1 > 4 # 布爾數(shù)組:由布爾值構(gòu)成的數(shù)組

index_bool = a1 > 4 index_bool

# 將index_bool作為a1的索引 a1[index_bool] # 用布爾數(shù)組作為索引,可以將布爾數(shù)組中為True的索引位置對(duì)應(yīng)的數(shù)組元素提取出來(lái),構(gòu)成一個(gè)新的數(shù)組

a1[a1 > 4] # 返回滿足條件的元素構(gòu)成的新數(shù)組

需求:將數(shù)組中>4的數(shù)字轉(zhuǎn)換為1,<=4的數(shù)字轉(zhuǎn)換為0

?a1[a1 <= 4] = 0 a1[a1 > 4] = 1 # 注意賦值的順序

條件索引中不能直接使用and or not 進(jìn)行邏輯運(yùn)算,原因是條件索引得到的結(jié)果是集合(數(shù)組中滿足條件的元素集合),不是布爾值 & 交集 對(duì)應(yīng) and 提取兩個(gè)集合中(數(shù)組元素的集合)都存在的元素, 對(duì)應(yīng)sql中的inner join | 并集 對(duì)應(yīng) or 提取兩個(gè)集合中所有的元素 對(duì)應(yīng)sql中的full join ~ 補(bǔ)集 對(duì)應(yīng) not 從原始數(shù)據(jù)中提取不在集合中的元素 另外,不同條件的組合需要用()對(duì)運(yùn)算的優(yōu)先級(jí)進(jìn)行修正,否則會(huì)出錯(cuò)

a2[:,3][(a2[:,3] > 4) | (a2[:,3] % 2 == 1)] # 1.先寫范圍 # 2.再寫條件,不同的條件需要用()括起來(lái)保證優(yōu)先運(yùn)算 # 3.最后寫 邏輯運(yùn)算 并集 用 |

找出第4列中 >4 的 奇數(shù) (交集)

a2[:,3][(a2[:,3] > 4) & (a2[:,3] % 2 == 1)] # 1.先寫范圍 # 2.再寫條件,不同的條件需要用()括起來(lái)保證優(yōu)先運(yùn)算 # 3.最后寫 邏輯運(yùn)算 交集 用 &

柚子快報(bào)激活碼778899分享:Numpy功能庫(kù)的學(xué)習(xí)1

http://yzkb.51969.com/

好文閱讀

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19262377.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄