深度学习入门 之 Numpy学习笔记(二)

接上

在前面我们已经学习过数组的部分计算方法了。接下来主要是体验一下Numpy的强大功能~

目录

一、 Numpy其他常用计算方法

2 求索引

3 求平均值

4 求中位数

5 矩阵转置

6 数组迭代

6.1 行迭代

6.2 列迭代

6.3 迭代元素

7 array合并

7.1 按行合并

7.2 按列合并

8 array分割

8.1 等份分割

8.2 不等份分割

9 array赋值

9.1 关联赋值

9.2 非关联赋值

10 其他

一、 Numpy其他常用计算方法

t1 = np.arange(24).reshape((4, 6))
t2 = np.arange(2, 26).reshape((6, 4))
t3 = np.dot(t1, t2)
print (t1)
print (t2)
print (t3)
print (t1.dot(t2))
np.dot(t1, t2)  t1.dot(t2)
两种方式效果一样,输出的结果和矩阵的乘法运算方式也一模一样。

2 求索引

主要有求指定元素的索引,以及根据索引找取元素。

深度学习入门 之 Numpy学习笔记(二)

深度学习入门 之 Numpy学习笔记(二)

3 求平均值

深度学习入门 之 Numpy学习笔记(二)

为了方便记忆,可以理解为axis=0表示沿着横向画一条线,横线上的点是列求平均值;每一行都要参与运算。axis=1表示沿着列画一条竖线,竖线上的每一个值表示行求平均值。每一列都要参与运算。此外, t1.mean()np.average(t1)也能达到一样的效果。

4 求中位数

深度学习入门 之 Numpy学习笔记(二)

5 矩阵转置

深度学习入门 之 Numpy学习笔记(二)

也可以使用 np.transpose()方法实现。

6 数组迭代

t1是4行6列形状的数组

深度学习入门 之 Numpy学习笔记(二)

6.1 行迭代

行迭代  逐行输出
for row in t1:
    print (row)

按行迭代输出结果为:

深度学习入门 之 Numpy学习笔记(二)

6.2 列迭代

列迭代 逐列输出 借助转置
for column in t1.T:
    print (column)

按列迭代输出结果为:

深度学习入门 之 Numpy学习笔记(二)

6.3 迭代元素

逐个元素输出  先展平
for item in t1.flat:
    print (item)

深度学习入门 之 Numpy学习笔记(二)

7 array合并

7.1 按行合并

np.vstack()和np.concatenate((),axis=0)两种方式:

t1 = np.arange(4).reshape((2, 2))
t2 = np.arange(4, 8).reshape((2, 2))
print (t1)
print (t2)
print (np.vstack((t1, t2)))
print (np.concatenate((t1, t2), axis=0))

深度学习入门 之 Numpy学习笔记(二)

7.2 按列合并

t1 = np.arange(4).reshape((2, 2))
t2 = np.arange(4, 8).reshape((2, 2))
print (t1)
print (t2)
print (np.hstack((t1, t2)))
print (np.concatenate((t1, t2), axis=1))

深度学习入门 之 Numpy学习笔记(二)

和按行道理一样,这里不过多解释……

【补充】可以使用t1[np.newaxis,:]的方式给数组添加横向维度; 使用t1[:,np.newaxis]的方式给数组添加纵向维度(可以使一维变二维)。

8 array分割

8.1 等份分割

np.split()、np.vsplit()、np.hsplit()

t1 = np.arange(12).reshape((3, 4))
print (t1)
按行分割
print (np.split(t1, 3, axis=0))
print (np.vsplit(t1, 3))
按列分割
print (np.split(t1, 2, axis=1))
print (np.hsplit(t1, 2))

深度学习入门 之 Numpy学习笔记(二)

注意分割的数量要满足等份分割,否则会报错!

8.2 不等份分割

按行分割
print (np.array_split(t1, 2, axis=0))
print (np.vsplit(t1, 3))

注意第一种方式,将三行分成两份,不会报错,看输出结果:

第一份有两行,第二份一行。

深度学习入门 之 Numpy学习笔记(二)

9 array赋值

9.1 关联赋值

t2=t1 方式进行赋值会使t1 和t2产生关联,任何一个修改都会影响另外一个

深度学习入门 之 Numpy学习笔记(二)

9.2 非关联赋值

t2=t1.copy() t1 和t2不关联,互不影响。

深度学习入门 之 Numpy学习笔记(二)

10 其他

t1 = np.arange(24).reshape((4, 6))
print (t1)
累加前面元素
print (np.cumsum(t1))
输出元素为原数据和后一数据相减结果
print (np.diff(t1))
判断元素是否为0 非零的输出
print (np.nonzero(t1))
对数组进行排序  按行排序
print (np.sort(t1))
矩阵截取 把数据全部变为某范围内
print (np.clip(t1, 2, 9))

暂时完结

接下:深度学习入门 之 Pandas学习笔记(一)

Original: https://blog.csdn.net/weixin_46206078/article/details/123917976
Author: 敲不好代码的小透明
Title: 深度学习入门 之 Numpy学习笔记(二)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/759402/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球