python3数据分析之Numpy

一、Numpy 数值计算库

(一)ndarray

  • n - 任意个
  • d - dimension 维度
  • array - 数组

ndarray

  1. 存储风格:【ndarray 相同类型】【list - 不同类型 】
  2. 并行化运算: ndarray支持向量化运算
  3. 底层语言:C语言,解除了GIL

(二)ndarray属性、方法

1.属性

ndarray.shape #大小(几行几列)
ndarray.ndim #维度(几维)
ndarray.size #多少个元素
ndarray.itemsize #每个元素的大小
ndarray.dtype #元素的数据类型

2.方法

  • ndarray形状修改
#返回新的ndarray,原始数据没有改变
data.reshape((10, 8))
#没有返回值,对原始的ndarray进行了修改
data.resize((10, 8))
#转置 行变成列,列变成行
data.T
  • ndarray类型修改
data.astype("int32")
data.tostring()#序列化到本地
  • 统计指标:【min, max, mean, median, var, std】
  • np.函数名
data.max(axis=0)

(三)numpy.函数名()

1. numpy创建ndarray

  • 1 生成0和1的数组
np.zeros(shape=(3, 4), dtype="float32")
np.ones(shape=[2, 3], dtype=np.int32)
np.eye(4)
  • 2 从现有数组中生成
np.array([1.1, 2.2, 3.3], dtype="float32")
np.array([1.1, 2.2, 3.3], dtype=np.float32)
data1 = np.array(score) #深拷贝
data2 = np.asarray(score)#浅拷贝
data3 = np.copy(score)#深拷贝
  • 3 生成固定范围的数组
np.linspace(0, 10, 5) #5是数据个数
np.arange(0, 11, 5) #5是步长
  • 4 生成随机数组
# 均匀分布
data1 = np.random.uniform(low=-1, high=1, size=1000000)
# 正态分布
data2 = np.random.normal(loc=1.75, scale=0.1, size=1000000)
data3 = np.random.normal(0, 1, (10, 5))

2. 数组的去重

np.unique(temp)
set(data)

3. 逻辑运算

# 1 逻辑判断, 如果大于0.5就标记为True 否则为False
data > 0.5 # 如果大于0.5就标记为True 否则为False;返回全数据的True/False矩阵
data[0:2, 0:5] > 0
# (data > 0.5) and (data < 1)
np.logical_and(data > 0.5, data < 1)
np.logical_or(data > 0.5, data < -0.5)
#判断是否有nan值
np.isnan(data)#返回全数据的True/False矩阵

np.all()【只要有一个False就返回False,只有全是True才返回True】
np.any()【只要有一个True就返回True,只有全是False才返回False】

data[data > 0.5] = 1.1 # 将逻辑判断为true的设置为1.1
np.all(stock_change[0:2, 0:5] > 0) # 判断是否全都符合条件,返回True/False
np.any(stock_change[:5, :] > 0) # 判断是否存在满足条件的数据,返回True/False

np.where(布尔值, True的位置的值, False的位置的值)

np.where(data > 0, 1, 0)
np.where(np.logical_or(data > 0.5, data < -0.5), 11, 3)

4. 统计运算

统计指标:【min, max, mean, median, var, std】

  • np.函数名
  • ndarray.方法名
data.max(axis=0)
np.max(data, axis=-1)
np.argmax(data, axis=-1) # 返回最大值、最小值所在位置
#np.argmin(temp, axis=)

5. 矩阵(matrix)

  • 创建矩阵
weights_mat = np.mat([[0.3], [0.7]])
  • 矩阵运算
# data, weights为2维数组
np.matmul(data, weights)
np.dot(data, weights)
# data_mat 、 weights_mat为矩阵
data_mat * weights_mat
data @ weights

6. 合并

  • 数组合并
#水平方向合并(追加列)
np.hstack((a, b))
np.concatenate((a, b), axis=1)
#垂直合并(追加行)
np.vstack((a, b))
np.concatenate((a, b), axis=0)

7. Numpy读取

data = np.genfromtxt("test.csv", delimiter=",")
np.count_nonzero(data) # 统计数组中非零元素的个数
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值