numpy数据分析

python数据分析常用库

numpy基础

ndarry数组

1.ndarry数组支持矢量化运算

2.内存中ndarry对象包含两部分:元数据与实际数据

3.numpy提供多种创建数组方法

import numpy as np
ary = np.array([[1, 2, 3], [4, 5, 6]])
print(ary, type(ary))

ary2 = np.arange(0, 10, 2)  # 步长为2
print(ary2)

ary3 = np.ones(10)  # 构建一个全是1的
print(ary3)

ary4 = np.zeros(10, dtype='int32')
print(ary3)

ary5 = np.ones_like(ary)    # 构造一个结构与括号内相同的 但是用1填充
print(ary5)

ary6 = np.zeros_like(ary)
print(ary6)

# 构建几个相同的分数
ary7 = np.ones(5) / 5
print(ary7)

运行结果为:

ary:[[1 2 3]
         [4 5 6]] <class 'numpy.ndarray'>
ary2: [0 2 4 6 8]
ary3: [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
ary4: [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
ary5: [[1 1 1]
         [1 1 1]]
ary6: [[0 0 0]
         [0 0 0]]
ary7: [0.2 0.2 0.2 0.2 0.2]

1.numpy的基本数据类型

2. numpy自定义复合数据类型

import numpy as np

data = [('zs', [90, 98, 96], 15),
        ('ls', [91, 96, 97], 16),
        ('zs', [94, 99, 97], 17)]

ary = np.array(data, dtype=[('names', 'str', 2), ('scores', 'int32', 3), ('age', 'int32', 1)])
print(ary['scores'])

输出:[[90 98 96]
      [91 96 97]
      [94 99 97]]

# 使用ndarray保存日期数据类型
dates = np.array(['2011', '2011-02', '2011-03-01', '2011-04-01 10:10:10'])
ndates = dates.astype('datetime64[D]')
print(ndates, ndates.dtype)
print(ndates[-1] - ndates[0])

输出:
['2011-01-01' '2011-02-01' '2011-03-01' '2011-04-01'] datetime64[D]
90 days

numpy提供了类型字符码可以更加方便的处理数据类型:

3.ndarray常用属性详解

改变原始数组的维度

视图变维

不会改变原始数组

a b 共享数据源

 

c.ravel: 将多维变维一维 存在c里面

 复制变维

e 重新复制一个新的数组  各自改变不影响对方

4. 数组的索引操作

 多维数组切片nn

# 二维
a = np.arange(1, 19)
a.resize(3, 6)
print(a)
print(a[1, 0:3]) # 前行 后列
print(a[:, :3]) #所有行前三列

运行结果为:
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]
 [13 14 15 16 17 18]]
[7 8 9]
[[ 1  2  3]
 [ 7  8  9]
 [13 14 15]]

# 多维
b = a.reshape(2, 3, 3)
print(b, b.shape)
print(a, a.shape)
#  页 行 列
print(b[:, :2, :2])

运行结果为:
# b
[[[ 1  2  3]
  [ 4  5  6]
  [ 7  8  9]]

 [[10 11 12]
  [13 14 15]
  [16 17 18]]] (2, 3, 3)
# a
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]
 [13 14 15 16 17 18]] (3, 6)
#b 所有页的前两行前两列
[[[ 1  2]
  [ 4  5]]

 [[10 11]
  [13 14]]]

5.ndarray掩码

“掩码”是numpy提供的一种高效过滤数组元素,获取原始数组子集的一种数组处理方法

布尔掩码:取出对应位置为True的

eg:取出0-100 3的倍数:a[a%3==0]

 索引掩码

ary = np.arange(1, 101)

print(ary[ary%3 == 0])
结果:
[ 3  6  9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72
 75 78 81 84 87 90 93 96 99]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值