Python之numpy库

Python之numpy

1.生成数组

t3 = np.arange(10)     等同 t2 = np.array(range(10))

2.指定数据类型或查看数据类型

print(t3.dtype)
t4 = np.array(range(10), dtype='i1')

3.保留两位小数

t6 = np.round(t5,2)

4.查看数组的形状 与行列数

形状: t1.shape
行数: csv.shape[0]
列数: csv.shape[1]

5.修改数组的形状

t3 = t1.reshape((2,3,4))

6.将数组展开为一维

t3.flatten()

7.数组与数组运算

广播原则: 如果两个数组的后缘维度的轴长度相符或者其中一方长度为1,则认为他们是广播兼容的。广播会在缺失和长度为1的维度上进行。

当维度一致,每个元素进行运算;
当维度不一致
假如 低维度的行或者列等于高纬度的行列时,会一次进行运算;
#定义
tt1 = np.arange(24).reshape(4,6)
tt2 = np.arange(20,44).reshape(4,6)
tt3 =  np.arange(6)
tt4 = np.arange(6,10).reshape(4,1)

#计算验证
print(tt2 - tt1)
print('-'*50)
print(tt1-tt3)
print('-'*50)
print(tt3-tt1)
print('-'*50)
print(tt1-tt4)
print('='*50)

[[20 20 20 20 20 20]
[20 20 20 20 20 20]
[20 20 20 20 20 20]
[20 20 20 20 20 20]]
--------------------------------------------------
[[ 0  0  0  0  0  0]
[ 6  6  6  6  6  6]
[12 12 12 12 12 12]
[18 18 18 18 18 18]]
--------------------------------------------------
[[  0   0   0   0   0   0]
[ -6  -6  -6  -6  -6  -6]
[-12 -12 -12 -12 -12 -12]
[-18 -18 -18 -18 -18 -18]]
--------------------------------------------------
[[-6 -5 -4 -3 -2 -1]
[-1  0  1  2  3  4]
[ 4  5  6  7  8  9]
[ 9 10 11 12 13 14]]
==================================================

二. numpy读取数据与存储数据

1.读取
数组的转置:

print(csv.transpose())
print(csv.swapaxes(0,1))
print(tt.T)

2.numpy的索引和切片 (逗号前面取行,逗号后面取列)

a)    取单行:t[2] 
      取单列: t[:,2]

b)    取连续行: t[2:]
      取连续的列: t[:, 2:]

c)    取不连续的行: t[[2,4]]
      取不连续的列: t[:, [2,4]]

d)    取多个点: t[[1,2], [3,4]]    #等价于   t[1,3]  与  t[2,4] 组成的数组

也可以取步长: t[1::2]

3.numpy中的布尔索引

a) t[t>7] = 100  #数组中大于7的都会等于100
b)   t = np.where(t>7,  100,  0)  #数组中大于7的等于 100,否则等于0

4.numpy中的 clip

t.clip(7,14)        小于7的替换成7,大于14的替换成14

注意:nan是一个浮点类型

三. 对数组数据的操作

1.拼接

a) 竖直拼接  np.vstack( (t1,t1...) )
b)水平拼接  np.hstack( (t1,t2...) )

2.交换行列

a)行交换 ttt1[[1,2], :] = ttt1[[2,1], :]
b)列交换 ttt1[:, [1,3]]  = ttt1[:, [3,1]]

3.构造数组

a) 构造全为 0 的数组 :  np.zeros( (3,3) )
b) 构造全为 1 的数组:np.ones( (3,3) )
c) 构造对角为 1 的数组 np.eye(3)   #三行三列 

4.寻找行列最大值的下标

a) 每行内最大值下标 np.argmax(t, axis=0)
b)  每列内最大值下标  np.argmin(t, axis=1)

5.numpy生成随机数
Python之numpy库_第1张图片

6.numpy注意点 copy与view

a) a = b  完全不是赋值 ,ab相互影响
b) a = b[:]  视图的操作,一种切片,创建新的对象a,但是a的数据完全由b保管,他们的数据变化也是一致的
c) a = b.copy() 复制, ab互补影响

四.了解nan与 numpy的统计函数

1.nan

a)  两个 nan 是不相等的
b)  np.nan != np.nan
c)  nan与任何值计算都等于nan
np.count_nonzero( t!=t ) 使用。t!=t 判断 是否 有nan。此方法会将 True1相加,当返回值为 0时,表示每nan

2.常用统计函数
Python之numpy库_第2张图片
±-------------------------------------------------------------------------------------------------+

Python之numpy库_第3张图片
大哥点个关注!(本文笔记通过看视频整理)

你可能感兴趣的:(Python,python,numpy)