一:数组维度

1.启动jupyter notebook

2.创建一个新的notebook,我们将它命名为ndarray

3.导入numpy

import numpy as np

 4.创建一个一维数组a,使用a.ndim查看数组维度

a = np.arange(10)
a
#结果:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a.ndim
#结果:1 (代表数组a是一维的)

运行效果图如下:

5.a.shape和a. size查看数组元素的个数

6.创建一个二维数组 A = np.ones(shape=(3,5))

#1.创建一个数值全部为1的二维数组A
A = np.ones(shape=(3,5))
A
#结果:array([[1., 1., 1., 1., 1.],
#            [1., 1., 1., 1., 1.],
#            [1., 1., 1., 1., 1.]])

#2.查看数组维度
A.ndim
结果:2

#3.查看数组shape值
A.shape
#结果:(3, 5)

#4.查看数组元素个数
A.size
#结果:15

运行效果图如下: 

7.手动输入一个二维数组

#1.手动输入一个二维数组
X = np.array([[1,2,3],
              [4,5,6]])
X
#结果:array([[1, 2, 3],
#            [4, 5, 6]])

#2.查看数组X的shape值
X.shape
结果:(2, 3)

 运行结果图如下:

8.输入一个数组a,第一行元素和第二行元素个数不等

#1.手动输入一个数组a,且每行个数不一致
a = np.array([[1,2,3],
              [4,5]])
a
#结果:array([list([1, 2, 3]), list([4, 5])], dtype=object)

#2.查看a的维度
a.ndim
#结果: 1

#3.查看a的shape值
a.shape
#结果:(2,)

#4.查看a的元素个数
a.size
#结果:2

运行效果图如下:

9.reshape改变数组a的维度,但是a本身还是一维数组

#1.创建一个一维数组a
a = np.arange(10)
a
#结果:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

#2.改变a的维度
a.reshape(2,5)
#结果:array([[0, 1, 2, 3, 4],
#            [5, 6, 7, 8, 9]])

#3.再次查看a本身的值
a
#结果:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

 运行效果图如下:

a.reshape(2,-1)两行,自动计算列数;a.reshape(-1,2) 两列,自动计算行数

#1.指定行数,自动计算列数
a.reshape(2,-1)
#结果:array([[0, 1, 2, 3, 4],
#             [5, 6, 7, 8, 9]])

#2.指定列数,自动计算行数
a.reshape(-1,2)
#结果:array([[0, 1],
#            [2, 3],
#            [4, 5],
#            [6, 7],
#            [8, 9]])

运行效果图如下:

10个元素,写成a.reshap(-1,3),则会报错

10.取值 ,X=np. arrage(15).reshape(3,5) 生成一个3行5列的数组

#1.生成一个二维数组X
X = np.arange(15).reshape(3,5)
X
#结果:array([[ 0,  1,  2,  3,  4],
#            [ 5,  6,  7,  8,  9],
#            [10, 11, 12, 13, 14]])

#2.获取第一行元素
X[0]
#结果:array([0, 1, 2, 3, 4])

#3.获取倒数第一行元素
X[-1]
#结果:array([10, 11, 12, 13, 14])

#4.获取第一行第2个元素
X[(0,1)]
#结果:1
X[0,1]
#结果:1

 运行效果图如下:

二:数组切片

11.一维数组切片:使用a=np. arange(10),产生一个一维数组

#1.创建一个一维数组a
a = np.arange(10)
a
#结果:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

#2.获取前5个元素
a[0:5]
#结果:array([0, 1, 2, 3, 4])
a[:5]
#结果:array([0, 1, 2, 3, 4])

#3.获取后5个元素
a[5:]
#结果:array([5, 6, 7, 8, 9])

#4.获取索引为0-8的元素,且步长为2
a[0:8:2]
#结果:array([0, 2, 4, 6])

#5.将所有元素倒序排列
a[::-1]
#结果:array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

运行效果图如下:

 

12.二维数组切片

#1.重新打印二维数组X
X
#结果:array([[ 0,  1,  2,  3,  4],
#            [ 5,  6,  7,  8,  9],
#           [10, 11, 12, 13, 14]])

#2.输出前两行的前三列
X[0:2,0:3]
#结果:array([[0, 1, 2],
#            [5, 6, 7]])
X[:2,:3]
#结果:array([[0, 1, 2],
#            [5, 6, 7]])

#3.错误的输出写法(先输出前两行,然后再输出前两行的前三行,所以最后还是只有两行数据)
X[:2][:3]
#结果:array([[0, 1, 2, 3, 4],
#            [5, 6, 7, 8, 9]])

#4.输出前两行的所有列,步长为2
X[:2,::2]
#结果:array([[0, 2, 4],
#             [5, 7, 9]])

#5.将所有行列倒序排列输出
X[::-1,::-1]
#结果:array([[14, 13, 12, 11, 10],
#            [ 9,  8,  7,  6,  5],
#            [ 4,  3,  2,  1,  0]])

 运行效果图如下:

三:引用关系

 

13.列表中的引用关系如下:

#1.创建一个列表a
a = list(range(5))
a
#结果:[0, 1, 2, 3, 4]

#2.引用a中的前两个元素,赋值给b
b = a[:2]
b
#结果:[0, 1]

#3.修改b中第2个元素
b[1] = 111

#4.继续查看a的值,没有改变
a
#结果:[0, 1, 2, 3, 4]

 运行效果图如下:

14.ndarray中的引用关系

#1.重新打印二维数组X
X
#结果:array([[ 0,  1,  2,  3,  4],
#            [ 5,  6,  7,  8,  9],
#            [10, 11, 12, 13, 14]])

#2.获取X中前两行中的前两列,并赋值为X2
X2 = X[:2,:2]
X2
#结果:array([[0, 1],
#             [5, 6]])

#3.修改X2中的第一个元素,并输出X2
X2[0,0]=99
X2
#结果:array([[0, 1],
#           [5, 6]])

#4.重新打印X的值,发现第一个元素也变了
X
#结果:array([[99,  1,  2,  3,  4],
#             [ 5,  6,  7,  8,  9],
#              [10, 11, 12, 13, 14]])

运行效果图如下:

15.若不想改变原来的值,可在引用后面加上copy方法

#1.重新输出X的值
X
#结果:array([[99,  1,  2,  3,  4],
#             [ 5,  6,  7,  8,  9],
#             [10, 11, 12, 13, 14]])

#2.取出X前2行中的前两列,赋值给X3,并加上copy()方法
X3 = X[:2,:2].copy()
X3
#结果:array([[99,  1],
#            [ 5,  6]])

#3.改变X3中的第一个元素的值
X3[0,0] = 100
X3
#结果:array([[100,   1],
#             [  5,   6]])

#4.重新输出X
X
#结果:array([[99,  1,  2,  3,  4],
#            [ 5,  6,  7,  8,  9],
#            [10, 11, 12, 13, 14]])

运行效果图如下:

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐