網站首頁 編程語言 正文
numpy.ndarray添加元素
平常使用的比較多的是list,在list后面添加元素直接是
data_list = [] data_list.append(0)
就可以了。
但是在上次使用這個用法時,報錯numpy.adarray沒有append這個屬性,因此發現data_list這個變量不是一個list,而是numpy.ndarray類型的,因此改為:
np.append(data_list, 0)
但是這樣改完之后會發現data_list的值并沒有發生改變,因此,我改為
data_list = np.append(data_list, 0)
然后由于添加了一個元素,他會告訴你,等號右邊是x+1維,左邊是x維,不能賦值,然后改為:
new_list = np.append(data_list, 0)
定義了一個新變量new_list用于保存添加完元素的值,后面再接著使用new_list進行操作就可以了。
Numpy:數組(Ndarray)之元素添加、刪除和修改
數組也是一個可變類型,可以對數組中的元素進行添加、刪除和修改,本文詳細介紹了對數組元素的添加和刪除的操作,以及這兩種操作的方法均已列出。數組元素的修改操作簡單,只要對索引和切片掌握,使用索引和切片獲取到元素后賦值就可以實現。
添加元素
方法 | 說明 |
---|---|
numpy.append() | 數組追加元素 |
numpy.insert() | 數組插入元素 |
numpy.append()
在數組末尾追加元素。
numpy.append(arr, values, axis=None)
參數說明:
-
arr
:接收array_like,需要添加元素的數組。 -
values
:接收array_like,追加到末尾的元素,形狀必須匹配。arr和values的維度必須相等才能追加 -
axis
:接收int,如果未給定軸,則arr和values在使用前都會被展平。
返回值:
- ndarray,arr的副本。
示例:
# 創建數組a >>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], ? ? ? ?[4, 5, 6]]) # 創建數組b ? ? ?? >>> b = np.arange(7,10).reshape(1,3) # a,b維度相同才能追加 >>> b ? array([[7, 8, 9]])?
注意:數組(arr)和追加值(values)的維度必須相同才可以追擊,否則會報錯:
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)
不指定軸向時,生成副本,將數組a,b都展平后進行追加。
# 將數組b追加到數組a后 >>> np.append(a, values=b) # 不指定axis時 array([ 1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9])?
指定軸向時,根據軸向追加,但是形狀必須匹配,指定軸向為行追加時列數必須相等,指定軸向為列追加時,行數必須相等。
>>> np.append(a, values=b, axis=0) # 根據行追加 array([[ 1, ?2, ?3], ? ? ? ?[ 4, ?5, ?6], ? ? ? ?[ 7, ?8, ?9]])
指定軸向時,指定軸向為列時,行數不相同,形狀不匹配,無法追加,會報ValueError錯!
>>> np.append(a, values=b, axis=1)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1
numpy.insert()
給定的軸向和指定的索引位置插入值。
numpy.insert(arr, obj, values, axis=None)
參數說明:
-
arr
:接收array_like,輸入的數組。 -
obj
:接收整數或者整數序列,索引位置。 -
values
:接收array_like,需要插入數組的值,需要考慮形狀。 -
axis
:接收整數,軸向。如果未給定軸向數組會被展平。
返回值:
- ndarray,插入值后的副本。
示例:
>>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], ? ? ? ?[4, 5, 6]]) >>> b = np.ones(shape=(2,1)) >>> b array([[1.], ? ? ? ?[1.]]) ? ? ? ? # 向數組a的行方向,索引為2的行插入數組b,會自動補全 >>> np.insert(a, 2, b, axis=0) array([[1, 2, 3], ? ? ? ?[4, 5, 6], ? ? ? ?[1, 1, 1], ? ? ? ?[1, 1, 1]]) ? ? ? ? # 向數組a的列方向,索引為2的列插入數組b >>> np.insert(a, 2, b, axis=1) array([[1, 2, 1, 1, 3], ? ? ? ?[4, 5, 1, 1, 6]])
刪除元素
方法 | 說明 |
---|---|
numpy.delete() | 刪掉某個軸的子數組,并返回刪除后的新數組 |
numpy.delete()
返回一個沿軸刪除了子數組的新數組。
返回一個沿軸刪除了子數組的新數組。
numpy.delete(arr, obj, axis=None)
參數說明:
-
arr
:接收array_like,輸入數組。 -
obj
:接收索引、切片,或者整數構成的數組。 -
axis
:接收整數,軸向
返回值:
- ndarray,刪除元素后的數組,是副本。
示例:
>>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], ? ? ? ?[4, 5, 6]]) # 軸向為列,刪除索引為2的列 ? ? ? >>> np.delete(a, 2, axis=1) ? ? ? array([[1, 2], ? ? ? ?[4, 5]])
對數據進行操作時形狀非常重要,如果形狀不匹配會引發報錯,需要對報錯的類型了解,才能在出問題后及時找到原因。除此以外,軸向也是非常重要的,二維數組中:axis=0表示行,axis=1表示列,這個概念非常容易混淆。
元素修改
使用索引切片獲取到該位置的元素后使用"="為該位置重新賦值即可。
語法:數組名[索引]=值 或 數組名[切片]=值
示例:
>>> a = np.arange(1,7).reshape(2,3) >>> a array([[1, 2, 3], [4, 5, 6]]) # 使用索引獲取到該位置后重新賦值即可修改元素 >>> a[0, 1] = 100 >>> a array([[ 1, 100, 3], [ 4, 5, 6]])
原文鏈接:https://blog.csdn.net/congcong_i/article/details/121009226
相關推薦
- 2022-04-09 Mybatis-Plus中dao層、service封裝的方法
- 2022-12-29 React中事件的類型定義方式_React
- 2022-08-30 android屏幕適配sw規則
- 2022-08-16 PostgreSQL怎么創建分區表詳解_PostgreSQL
- 2022-07-09 Tensorflow中使用cpu和gpu有什么區別_python
- 2022-05-19 關于python中不同函數讀取圖片格式的區別淺析_python
- 2022-07-04 Python處理mat文件的三種方式小結_python
- 2022-08-15 springboot實現動態數據源切換
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支