背景介绍
今天我们学习NumPy函数numpy.append和numpy.hstack来添加和删除NumPy数组中的元素以及水平和垂直堆叠数组。 使用Jupyter Notebook交互式环境用于编码。
以上为在Jupyter Notebook中进行的代码运行截图,具体代码如下:
# ## 使用Numpy函数操作数组进行添加和删除元素
# In[37]:
import numpy as np
# In[38]:
#定义一个3D数组my_array
my_array = np.array(np.arange(24)).reshape(2,3,4)
my_array
# ## 使用np.append()方法往数组中添加元素
# In[39]:
new_array = np.append(my_array,[5,6,7,8])
new_array
# In[40]:
#查看shape
new_array.shape
# In[41]:
new_array.reshape(7,4)
# In[42]:
#在定义一个数组c
c = np.array(np.arange(24)).reshape(2,3,4) * 10 + 3
c
# In[43]:
my_array
# In[44]:
#接下来往my_array中添加c
#axis=0 是在第一“维”行
np.append(my_array,c,axis=0)
# In[45]:
#查看shape
np.append(my_array,c,axis=0).shape
# In[46]:
#axis=1 是在第二“维”列
np.append(my_array,c,axis=1)
# In[47]:
np.append(my_array,c,axis=2)
# In[48]:
np.append(my_array,c,axis=2).shape
# ## 使用np.hstack()添加元素
#
# In[49]:
my_stack = np.hstack((my_array,c))
my_stack
# In[50]:
my_stack.shape
# In[51]:
#改变【0,0,2】的值
my_stack[0,0,2] = 999
# In[52]:
my_stack
# ## 使用np.insert()插入元素
# In[53]:
c
# In[54]:
insert_arr = np.insert(c,1,888,axis=0)
insert_arr
# In[55]:
np.insert(c,1,888,axis=1)
# In[56]:
np.insert(c,1,888,axis=2)
# ## 使用np.delete()删除元素
# In[57]:
d = np.empty(c.shape)
np.copyto(d,c)
d
# In[58]
np.delete(d,1,axis=1)
# In[59]:
np.delete(d,1,axis=2)
# # numpy.reshape(array, shape, order = ‘C’) :
## 在不改变数组的情况下塑造数组
# # python 程序说明
# # numpy.reshape() 方法
# In[60]:
array = np.arange(8)
print("原始数组 : \n", array)
# # 塑造数组有2行4列
# In[61]:
array = np.arange(8).reshape(2, 4)
print("\n塑造数组有2行4列 : \n", array)
# # 塑造数组有4行2列
# In[62]:
array = np.arange(8).reshape(4 ,2)
print("\n塑造数组有4行2列s : \n", array)
# # 构造三维数组
# In[63]:
array = np.arange(8).reshape(2, 2, 2)
print("\n原始数组构造成三维数组 : \n", array)
# # numpy.axis解释:
# ## 根据定义,维度的轴号是数组形状中该维度的索引。
#它也是在索引期间用于访问该维度的位置。
# ## 例如,如果2D阵列a具有形状(5,6),
#那么您可以访问[0,0]直到[4,5]。
#因此,axis 0是第一维(“行”),axis 1是第二维(“列”)。
#在更高的维度中,“行”和“列”停止真正有意义,
#尝试根据所涉及的形状和指数来考虑轴。