设为首页 加入收藏

TOP

numpy,matplotlib,pandas(一)
2019-10-09 19:56:25 】 浏览:77
Tags:numpy matplotlib pandas

numpy模块

numpy简介

numpy官方文档:https://docs.scipy.org/doc/numpy/reference/?v=20190307135750

numpy是Python的一种开源的数值计算扩展库。这种库可用来存储和处理大型numpy数组,比Python自身的嵌套列表结构要高效的多(该结构也可以用来表示numpy数组)。

numpy库有两个作用:

  1. 区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型
  2. 计算速度快,甚至要由于python内置的简单运算,使得其成为pandas、sklearn等模块的依赖包。高级的框架如TensorFlow、PyTorch等,其数组操作也和numpy非常相似。

numpy使用

import numpy as np

lt1 = [1,2,3]
lt2 = [4,5,6]
arry1 = np.array(lt1)
arry2 = np.array(lt2)
print(arry1*arry2)    # [ 4 10 18]  

创建numpy数组

# 一维数组
arr1 = np.array([1,2,4])
print(type(arr1), arr1)  # <class 'numpy.ndarray'> [1 2 4]

# 二维数组
arr = np.array([
    [1,2,3],
    [4,5,6]
])

print(arr)  
'''
[[1 2 3]
 [4 5 6]]
'''


# 三维数组
arr = np.array([
    [[1, 2, 3],
     [4, 5, 6]],
    [[1, 2, 3],
     [4, 5, 6]]
])

print(arr)
'''
[[[1 2 3]
  [4 5 6]]

 [[1 2 3]
  [4 5 6]]]
'''

numpy数组的常用属性

属性 解释
T 数组的转置(对高维数组而言)
dtype 数组元素的数据类型
size 数组元素的个数
ndim 数组的维数
shape 数组的维度大小(以元组形式)
astype 类型转换

dtype 数组元素的数据类型,numpy数组是属于python解释器的,int32 / float64 属于numpy

# 转置
arr = np.array([
    [1, 2, 3],
    [4, 5, 6]
])

print(f'arr的转置为\n{arr.T}')
'''
arr的转置为
[[1 4]
 [2 5]
 [3 6]]
'''

# dtype数据类型
arr = np.array([
    [1., 2., 3.],
    [4, 5, 6]
])

print(arr.dtype)  # float64


# 数组元素的个数
print(arr.size)   # 6

# 数组的维数
print(arr.ndim)  # 2

# 数组的维度大小(以元组形式, 几行几列)
print(arr.shape)  # (2,3)

# 数组类型转换
arr = np.array([
    [1, 2, 3],
    [4, 5, 6]
])
res = arr.astype(np.float64)
print(res) 
'''
[[1. 2. 3.]
 [4. 5. 6.]]
'''

切割numpy数组

切分数组类似于列表的切割,numpy数组的切割涉及到行和列的切割

arr = np.array([
    [1, 2, 3],
    [4, 5, 6]
])

print(arr[:,:])  # 行;列  取整个数组
print(arr[0,0])  # 取第一行第一列,1
print(arr[0,:])  # 取第一行  [1 2 3]
print(arr[:,2:])  # 取第三列 
'''
[[3]
 [6]]
'''

赋值

arr = np.array([
    [1, 2, 3],
    [4, 5, 6]
])
arr[0,0] = 0
print(arr)   # 将二维数组第一行第一列元素赋值为0

arr[:,:] = 0
print(arr)  # 全部换为0
'''
[[0 0 0]
 [0 0 0]]
'''

元组合并

# 水平合并
arr1 = np.array([
    [1, 2, 3],
    [4, 5, 6]
])

arr2 = np.array([
    [7, 8, 9],
    ['a', 'b', 'c']
])

print(np.hstack((arr1,arr2))) # 只能放元组
'''
[['1' '2' '3' '7' '8' '9']
 ['4' '5' '6' 'a' 'b' 'c']]
'''

# 垂直合并
print(np.vstack((arr1, arr2)))
'''
[['1' '2' '3']
 ['4' '5' '6']
 ['7' '8' '9']
 ['a' 'b' 'c']]
'''

print(np.concatenate((arr1, arr2)))  # 默认以列合并
'''
[['1' '2' '3']
 ['4' '5' '6']
 ['7' '8' '9']
 ['a' 'b' 'c']]
'''
print(np.concatenate((arr1, arr2), axis=1)) # 以行合并
'''
[['1' '2' '3' '7' '8' '9']
 ['4' '5' '6' 'a' 'b' 'c']]
'''

通过函数创建数组

方法 详解
array() 将列表转换为数组,可选择显式指定dtype
arange() range的numpy版,支持浮点数
linspace() 类似arange(),第三个参数为数组长度
zeros() 根据指定形状和dtype创建全0数组
ones() 根据指定形状和dtype创建全1数组
eye() 创建单位矩阵
empty() 创建一个元素全随机的数组
reshape() 重塑形状

ones / zeros / eye / empty

# ones
print(np.ones((2,3)))  # 构建两行三列的1
'''
[[1. 1. 1.]
 [1. 1. 1.]]
'''

# zeros
print(np.zeros((2,3)))  # 创建2行3列的0
'''
[[0. 0. 0.]
 [0. 0. 0.]]
'''

# eye
print(np.eye(3,3))  # 创建单位矩阵
'''
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
'''

# empty
print(np.empty((2,2)))  # 创建一个2行2列的数组,里面的元素是随机生成的
'''
[[1.42419938e-306 9.34609790e-307]
 [1.29060871e-306 7.56601165e-307]]
'''

linspace / logspace

print(np.linspace(1,100,10)) # 创建一个等差数列,1-100,有10个数
# [  1.  12.  23.  34.  45.  56.  67.  78.  89. 100.]

print(np.logspace(1,10,5))  # 创建等比数列、
# [1.00000000e+01 1.77827941e+03 3.16227766e+05 5.62341325e+07 1.00000000e+10]

arrange

print(np.arang
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python基础(十七) 下一篇Python实例2-逗号代码

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目