深度学习入门 之 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学习笔记(二)_第1张图片

深度学习入门 之 Numpy学习笔记(二)_第2张图片深度学习入门 之 Numpy学习笔记(二)_第3张图片

3 求平均值

深度学习入门 之 Numpy学习笔记(二)_第4张图片

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

4 求中位数

深度学习入门 之 Numpy学习笔记(二)_第5张图片

5 矩阵转置

深度学习入门 之 Numpy学习笔记(二)_第6张图片

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

6 数组迭代

t1是4行6列形状的数组

深度学习入门 之 Numpy学习笔记(二)_第7张图片

6.1 行迭代

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

按行迭代输出结果为: 

深度学习入门 之 Numpy学习笔记(二)_第8张图片

6.2 列迭代

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

按列迭代输出结果为:

深度学习入门 之 Numpy学习笔记(二)_第9张图片  

6.3 迭代元素

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

深度学习入门 之 Numpy学习笔记(二)_第10张图片

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学习笔记(二)_第11张图片  

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学习笔记(二)_第12张图片

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

【补充】可以使用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学习笔记(二)_第13张图片

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

8.2 不等份分割

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

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

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pWy5LiN5aW95Luj56CB55qE5bCP6YCP5piO,size_19,color_FFFFFF,t_70,g_se,x_16

9 array赋值

9.1 关联赋值

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

深度学习入门 之 Numpy学习笔记(二)_第14张图片

9.2 非关联赋值 

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

深度学习入门 之 Numpy学习笔记(二)_第15张图片

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学习笔记(一)

你可能感兴趣的:(深度学习,深度学习,python,pycharm)