
文章目录
- 专栏导读
 - 1、修改数组形状
 - reshape()
 - resize()
 - flatten()
 - ravel()
 
- 2、翻转数组
 - transpose()
 - flip()
 - fliplr()
 - flipud()
 
- 3、修改数组维度
 - newaxis()
 - squeeze()
 
- 4、连接数组
 - concatenate()
 - stack()
 - hstack()、vstack()
 
- 5、分割数组
 - split()
 - hsplit()
 - vsplit()
 - array_split()
 
- 6、数组元素的添加和删除
 - append()
 - insert()
 - delete()
 
专栏导读
✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。
✍ 本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
✍ 订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 还可以订阅进阶篇《数据分析之术》,其包含数据分析方法论、数据挖掘算法原理、业务分析实战。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》
1、修改数组形状
Numpy提供了一些函数来修改数组的形状,包括:
| 函数 | 描述 | 
|---|---|
| reshape() | 改变数组的形状,但不改变原数组。 | 
| resize() | 改变数组的形状,同时也改变原数组。 | 
| flatten() | 将多维数组变为一维数组。 | 
| ravel() | 将多维数组变为一维数组,但是返回的是原数组的视图。 | 
reshape()
import numpy as np
a = np.arange(1, 10).reshape(3, 3)
print(a)
 

resize()
b = np.arange(1, 10).reshape(3, 3)
b.resize(1, 9)
print(b)
 

flatten()
c = np.arange(1, 10).reshape(3, 3)
d = c.flatten()
print(c)
print(d)
 

ravel()
e = np.arange(1, 10).reshape(3, 3)
f = e.ravel()
print(e) 
print(f)
 

2、翻转数组
Numpy提供了一些函数来翻转数组,包括:
| 函数 | 描述 | 
|---|---|
| transpose() | 转置数组,行变为列,列变为行。 | 
| flip() | 沿某个轴翻转数组。 | 
| fliplr() | 左右翻转数组。 | 
| flipud() | 上下翻转数组。 | 
transpose()
a = np.arange(1, 10).reshape(3, 3)
b = np.transpose(a)
print(a)
print(b)
 

flip()
c = np.arange(1, 10).reshape(3, 3)
d = np.flip(c)
print(c)
print(d)
 

fliplr()
e = np.arange(1, 10).reshape(3, 3)
f = np.fliplr(e)
print(e)
print(f)
 

flipud()
g = np.arange(1, 10).reshape(3, 3)
h = np.flipud(g)
print(g)
print(h)
 

3、修改数组维度
Numpy提供了一些函数来修改数组的维度,包括:
| 函数 | 描述 | 
|---|---|
| newaxis | 增加数组维度。 | 
| squeeze() | 去掉数组中的一维。 | 
newaxis()
a = np.array([1, 2, 3])
b = a[np.newaxis, :]
print(a)
print(b)
 

squeeze()
c = np.arange(1, 10).reshape(1, 3, 3, 1)
d = np.squeeze(c)
print(c.shape)
print(d.shape)
 

4、连接数组
Numpy提供了一些函数来连接数组,包括:
| concatenate() | 沿着指定的轴连接相同形状的两个或多个数组。 | 
| stack() | 沿着新的轴连接数组序列。 | 
| hstack() | 水平堆叠序列中的数组(列方向)。 | 
| vstack() | 水平堆叠序列中的数组(行方向)。 | 
concatenate()
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
c = np.concatenate((a, b), axis=0)
print(c)
 

stack()
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.stack((a, b))
print(c)
 

hstack()、vstack()
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.hstack((a, b))
d = np.vstack((a, b))
print(c)
print(d)
 

5、分割数组
| 函数 | 描述 | 
|---|---|
| split() | 将一个数组分割为多个子数组,分割方式可以指定为沿着垂直方向(纵向)或水平方向(横向),并指定分割点。 | 
| hsplit() | 将一个数组水平分割成多个子数组。 | 
| vsplit() | 将一个数组垂直分割成多个子数组。 | 
| array_split() | 将一个数组按照指定的轴进行分割成多个子数组,轴数可以自定义。 | 
split()
arr = np.arange(12).reshape(2, 6)
sub_arr1 = np.split(arr, 3, axis=1)#按照第二个轴(即横向)将数组分割成三个子数组
sub_arr2 = np.split(arr, 2, axis=0)#按照第二个轴(即纵向)将数组分割成二个子数组
print(arr,'\n')
print(sub_arr1,'\n')
print(sub_arr2)
 

hsplit()
arr = np.arange(12).reshape(2, 6)
sub_arr_hsplit = np.hsplit(arr, 2)# 将数组水平分割成两个子数组
print(sub_arr_hsplit)
 

vsplit()
arr = np.arange(12).reshape(2, 6)
sub_arr_vsplit = np.vsplit(arr, 2)# 将数组垂直分割成两个子数组
print(sub_arr_vsplit)
 

array_split()
arr = np.arange(12).reshape(2, 6)
sub_array_split = np.array_split(arr, 4, axis=1)# 按照第二个轴(即横向)将数组分割成四个子数组
print(sub_array_split)
 

6、数组元素的添加和删除
| 函数 | 描述 | 
|---|---|
| append() | 用于在数组末尾添加值 | 
| insert() | 用于在指定位置插入元素 | 
| delete() | 用于删除数组中的元素 | 
append()
numpy.append(arr, values, axis=None)
 
参数说明:
- arr:输入的数组
 - values:要添加的值,可以是一个值或一个数组
 - axis:沿着哪个轴添加值,默认为 None,即在数组的一维拼接添加值。
 
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.append(a, b)
print(c) 
 

insert()
numpy.insert(arr, obj, values, axis=None)
 
参数说明:
- arr:输入的数组
 - obj:要插入的位置,可以是一个整数或一个数组,表示要插入的位置
 - values:要插入的值,可以是一个值或一个数组
 - axis:沿着哪个轴插入值,默认为 None,即在数组的一维插入值。
 
a = np.array([1, 2, 3])
b = np.insert(a, 1, [4, 5])
print(b) 
 

delete()
numpy.delete(arr, obj, axis=None)
 
参数说明:
- arr:输入的数组
 - obj:要删除的元素的索引或者一个数组,表示要删除哪些元素
 - axis:沿着哪个轴删除值,默认为 None,即在数组的一维删除值。
 
a = np.array([1, 2, 3, 4, 5])
b = np.delete(a, 2)
print(b)  
 

📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗



















