欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

比較兩個numpy數(shù)組并實(shí)現(xiàn)刪除共有的元素

 更新時間:2024年02月22日 10:48:42   作者:ZyLL_123  
這篇文章主要介紹了比較兩個numpy數(shù)組并實(shí)現(xiàn)刪除共有的元素,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

比較兩個numpy數(shù)組并刪除共有的元素

項(xiàng)目場景

提示:這里簡述項(xiàng)目相關(guān)背景:

兩個numpy數(shù)組要刪掉共有的元素

問題描述

例如:

a=[1,2,3,4,5,6]
b=[1,2,3]

最終我想獲得x=[4,5,6]

解決方案

x=a[~np.in1d((a,b))] 這個語句即可

注意:

in1d中的是1,不是L

numpy數(shù)組元素增刪改查

介紹 NumPy 數(shù)組元素的增刪改查操作,主要有以下方法:

數(shù)組元素操作方法

函數(shù)名稱描述說明
resize返回指定形狀的新數(shù)組。
append將元素值添加到數(shù)組的末尾。
insert沿規(guī)定的軸將元素值插入到指定的元素前。
delete刪掉某個軸上的子數(shù)組,并返回刪除后的新數(shù)組。
argwhere返回?cái)?shù)組內(nèi)符合條件的元素的索引值。
unique用于刪除數(shù)組中重復(fù)的元素,并按元素值由大到小返回一個新數(shù)組。

1. numpy.resize()

numpy.resize() 返回指定形狀的新數(shù)組。

numpy.resize(arr, shape)

使用示例:

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print(a)
#a數(shù)組的形狀
print(a.shape)
b = np.resize(a,(3,2))
#b數(shù)組
print (b)
#b數(shù)組的形狀
print(b.shape)
#修改b數(shù)組使其形狀大于原始數(shù)組
b = np.resize(a,(3,3))
print(b)

輸出結(jié)果為:

a數(shù)組:
[[1 2 3]
[4 5 6]]

a形狀:
(2, 3)

b數(shù)組:
[[1 2]
[3 4]
[5 6]]

b數(shù)組的形狀:
(3, 2)

修改后b數(shù)組:
[[1 2 3]
[4 5 6]
[1 2 3]]

這里需要區(qū)別 resize() 和 reshape() 的使用方法,它們看起來相似,實(shí)則不同。

resize 僅對原數(shù)組進(jìn)行修改,沒有返回值,而 reshape 不僅對原數(shù)組進(jìn)行修改,同時返回修改后的結(jié)果。

看一組示例,如下所示:

In [1]: import numpy as np
In [2]: x=np.arange(12)
#調(diào)用resize方法
In [3]: x_resize=x.resize(2,3,2)
In [4]: x
Out[4]:
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],
       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])
In [5]: x_resize
#返回None使用print打印
In [6]: print(x_resize)
None
#調(diào)用reshape方法
In [7]: x_shape=x.reshape(2,3,2)
#返回修改后的數(shù)組
In [8]: x_shape
Out[8]:
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],
       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])
In [9]: x
Out[9]:
array([[[ 0,  1],
        [ 2,  3],
        [ 4,  5]],
       [[ 6,  7],
        [ 8,  9],
        [10, 11]]])

2. numpy.append()

在數(shù)組的末尾添加值,它返回一個一維數(shù)組。

numpy.append(arr, values, axis=None)

參數(shù)說明:

  • arr:輸入的數(shù)組;
  • values:向 arr 數(shù)組中添加的值,需要和 arr 數(shù)組的形狀保持一致;
  • axis:默認(rèn)為 None,返回的是一維數(shù)組;當(dāng) axis =0 時,追加的值會被添加到行,而列數(shù)保持不變,若 axis=1 則與其恰好相反。

使用示例:

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
#向數(shù)組a添加元素
print (np.append(a, [7,8,9]))
#沿軸 0 添加元素
print (np.append(a, [[7,8,9]],axis = 0))
#沿軸 1 添加元素
print (np.append(a, [[5,5,5],[7,8,9]],axis = 1))

輸出結(jié)果為:

向數(shù)組a添加元素:
[1 2 3 4 5 6 7 8 9]

沿軸 0 添加元素:
[[1 2 3]
[4 5 6]
[7 8 9]]

沿軸 1 添加元素:
[[1 2 3 5 5 5]
[4 5 6 7 8 9]]

3. numpy.insert()

表示沿指定的軸,在給定索引值的前一個位置插入相應(yīng)的值,如果沒有提供軸,則輸入數(shù)組被展開為一維數(shù)組。

numpy.insert(arr, obj, values, axis)

參數(shù)說明:

  • arr:要輸入的數(shù)組
  • obj:表示索引值,在該索引值之前插入 values 值;
  • values:要插入的值;
  • axis:指定的軸,如果未提供,則輸入數(shù)組會被展開為一維數(shù)組。

示例如下:

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
#不提供axis的情況,會將數(shù)組展開
print (np.insert(a,3,[11,12]))
#沿軸 0 垂直方向
print (np.insert(a,1,[11],axis = 0))
#沿軸 1 水平方向
print (np.insert(a,1,11,axis = 1))

輸出結(jié)果如下:

提供 axis 參數(shù):
[ 1  2  3 11 12  4  5  6]

沿軸 0:
[[ 1  2]
[11 11]
[ 3  4]
[ 5  6]]

沿軸 1:
[[ 1 11  2]
[ 3 11  4]
[ 5 11  6]]

4. numpy.delete()

該方法表示從輸入數(shù)組中刪除指定的子數(shù)組,并返回一個新數(shù)組。

它與 insert() 函數(shù)相似,若不提供 axis 參數(shù),則輸入數(shù)組被展開為一維數(shù)組。

numpy.delete(arr, obj, axis)

參數(shù)說明:

  • arr:要輸入的數(shù)組;
  • obj:整數(shù)或者整數(shù)數(shù)組,表示要被刪除數(shù)組元素或者子數(shù)組;
  • axis:沿著哪條軸刪除子數(shù)組。

使用示例:

import numpy as np
a = np.arange(12).reshape(3,4)
#a數(shù)組
print(a)
#不提供axis參數(shù)情況
print(np.delete(a,5))
#刪除第二列
print(np.delete(a,1,axis = 1))
#刪除經(jīng)切片后的數(shù)組
a = np.array([1,2,3,4,5,6,7,8,9,10])
print (np.delete(a, np.s_[::2]))

輸出結(jié)果為:

a數(shù)組:
[[ 0  1  2  3]
[ 4  5  6  7]
[ 8  9 10 11]]

無 axis 參數(shù):
[ 0  1  2  3  4  6  7  8  9 10 11]

刪除第二列:
[[ 0  2  3]
[ 4  6  7]
[ 8 10 11]]

刪除經(jīng)過切片的數(shù)組:
[ 2  4  6  8 10]

5. numpy.argwhere()

該函數(shù)返回?cái)?shù)組中非 0 元素的索引,若是多維數(shù)組則返回行、列索引組成的索引坐標(biāo)。

示例如下所示:

import numpy as np
x = np.arange(6).reshape(2,3)
print(x)
#返回所有大于1的元素索引
y=np.argwhere(x>1)
print(y)

輸出結(jié)果:

#x數(shù)組
[[0 1 2]
[3 4 5]]
#返回行列索引坐標(biāo)
[[0 2]
[1 0]
[1 1]
[1 2]]

6. numpy.unique()

用于刪除數(shù)組中重復(fù)的元素,其語法格式如下:

numpy.unique(arr, return_index, return_inverse, return_counts)

參數(shù)說明:

  • arr:輸入數(shù)組,若是多維數(shù)組則以一維數(shù)組形式展開;
  • return_index:如果為 True,則返回新數(shù)組元素在原數(shù)組中的位置(索引);
  • return_inverse:如果為 True,則返回原數(shù)組元素在新數(shù)組中的位置(索引);
  • return_counts:如果為 True,則返回去重后的數(shù)組元素在原數(shù)組中出現(xiàn)的次數(shù)。

示例如下:

import numpy as np
a = np.array([5,2,6,2,7,5,6,8,2,9])
print (a)
#對a數(shù)組的去重
uq = np.unique(a)
print (uq)
#數(shù)組去重后的索引數(shù)組
u,indices = np.unique(a, return_index = True)
#打印去重后數(shù)組的索引
print(indices)
#去重?cái)?shù)組的下標(biāo):
ui,indices = np.unique(a,return_inverse = True)
print (ui)
#打印下標(biāo)
print (indices)
#返回去重元素的重復(fù)數(shù)量
uc,indices = np.unique(a,return_counts = True)
print (uc)
元素出現(xiàn)次數(shù):
print (indices)

輸出結(jié)果為:

a數(shù)組:
[5 2 6 2 7 5 6 8 2 9]

去重后的a數(shù)組
[2 5 6 7 8 9]

去重?cái)?shù)組的索引數(shù)組:
[1 0 2 4 7 9]

去重?cái)?shù)組的下標(biāo):
[2 5 6 7 8 9]

原數(shù)組在新數(shù)組中的下標(biāo):
[1 0 2 0 3 1 2 4 0 5]

返回去重元素的重復(fù)數(shù)量:
[2 5 6 7 8 9]

統(tǒng)計(jì)重復(fù)元素出現(xiàn)次數(shù):
[3 2 2 1 1 1]

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中如何向函數(shù)傳遞列表

    Python中如何向函數(shù)傳遞列表

    本文主要介紹了Python中如何向函數(shù)傳遞列表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 用 Python 連接 MySQL 的幾種方式詳解

    用 Python 連接 MySQL 的幾種方式詳解

    這篇文章主要介紹了用 Python 連接 MySQL 的幾種方式,大家可以根據(jù)實(shí)際情況選擇合理的連接方式,需要的朋友可以參考下
    2018-04-04
  • 詳解如何使用Pytorch進(jìn)行多卡訓(xùn)練

    詳解如何使用Pytorch進(jìn)行多卡訓(xùn)練

    這篇文章主要為大家介紹了使用Pytorch進(jìn)行多卡訓(xùn)練的實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 用python實(shí)現(xiàn)批量重命名文件的代碼

    用python實(shí)現(xiàn)批量重命名文件的代碼

    任務(wù)很簡單,某個目錄下面有幾千個文件,某些文件沒有后綴名,現(xiàn)在的任務(wù)就是將所有的沒有后綴名的文件加上后綴名,python有現(xiàn)成的函數(shù)可以實(shí)現(xiàn),但是在實(shí)現(xiàn)過程中遇到幾個問題,分享一下解決方法
    2012-05-05
  • python能做哪些生活有趣的事情

    python能做哪些生活有趣的事情

    在本篇文章里小編給各位分享了關(guān)于python能做的生活有趣的事情,有興趣的朋友們可以學(xué)習(xí)下。
    2020-09-09
  • 視覺直觀感受若干常用排序算法

    視覺直觀感受若干常用排序算法

    這篇文章主要利用視覺直觀的幾種若干常用排序算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • python簡單讀取大文件的方法

    python簡單讀取大文件的方法

    這篇文章主要介紹了python簡單讀取大文件的方法,通過非常簡單的方式實(shí)現(xiàn)對GB級別大文件的讀取功能,并給出了外文參考站點(diǎn)stackoverflow的參考地址,需要的朋友可以參考下
    2016-07-07
  • Python Socket傳輸文件示例

    Python Socket傳輸文件示例

    這篇文章主要介紹了Python Socket傳輸文件示例,發(fā)送端可以不停的發(fā)送新文件,接收端可以不停的接收新文件。有興趣的可以了解一下。
    2017-01-01
  • Python基于Pytorch的特征圖提取實(shí)例

    Python基于Pytorch的特征圖提取實(shí)例

    在利用深度學(xué)習(xí)進(jìn)行分類時,有時需要對中間的特征圖進(jìn)行提取操作,下面這篇文章主要給大家介紹了關(guān)于Python基于Pytorch的特征圖提取的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 詳解Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對比

    詳解Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對比

    這篇文章主要介紹了Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評論