数据分析-day02-numpy-np数组的基本操作

Numpy:提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于多维数组(矩阵)处理的库。用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。本身是由C语言开发,是个很基础的扩展,Python其余的科学计算扩展大部分都是以此为基础。

高性能科学计算和数据分析的基础包

ndarray,多维数组(矩阵),具有矢量运算能力,快速、节省空间

矩阵运算,无需循环,可完成类似Matlab中的矢量运算

线性代数、随机数生成

import numpy as np

Scipy
Scipy 基于Numpy提供了一个在Python中做科学计算的工具集,专为科学和工程设计的Python工具包。主要应用于统计、优化、整合、线性代数模块、傅里叶变换、信号和图像处理、常微分方程求解、稀疏矩阵等,在数学系或者工程系相对用的多一些,和数据处理的关系不大, 我们知道即可,这里不做讲解。

在NumPy库的基础上增加了众多的数学、科学及工程常用的库函数

线性代数、常微分方程求解、信号处理、图像处理

一般的数据处理numpy已经够用

import scipy as sp

简而言之:numpy是一个高性能的科学计算和数据分析的工具包,主要针对数值计算,用于多维数组和矩阵。

scipy是在numpy基础上,增加了众多的数学、科学及工程常用的库函数,和数据处理的关系不大, 我们知道即可,这里不做讲解。

更多资料:

Python、NumPy和SciPy介绍:http://cs231n.github.io/python-numpy-tutorial

NumPy和SciPy快速入门:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

# -*- coding: utf-8 -*-

# @File    : numpy_array_demo.py
# @Date    :  2019-12-30 15:29
# @Author  : admin
import numpy as np
'''
数组的结构:array.shape
数组的维度:array.ndim
元素的类型:array.dtype
数组元素的个数:array.size
数组的索引(下标):array[0]
'''
########################################################1.1 定义numpy的数组##########################
a=np.array([1,2,3,4,5,6])
b=np.array(range(10))    ## np.arange(起始值, 结束值, 步长(默认1))
#arange 可以设置起始,结束值,步长
b = np.arange(1, 10, 3)
c=np.arange(1,7);
print(a)
print(b)
print(c)
#元素的类型
print(a.dtype)
#数组元素的个数
print(a.size)
#维度
print(a.ndim)
#数组的结构
print(a.shape)
print(type(a))
'''
[1 2 3 4 5 6]
[1 2 3 4 5 6 7 8 9]
[1 2 3 4 5 6]
int32
6
1
(6,)
<class 'numpy.ndarray'>
'''
########################################################1.2 修改numpy的数组类型##########################
a=np.array([1,0,1,0],dtype=np.bool)
print(a)
#修改数据类型
a=a.astype(np.int)
print(a)
b=np.array([0.34567,0.23678])
#四舍五入,保留小数
b=np.round(b,2)
print(b)
'''
[ True False  True False]
[1 0 1 0]
[0.35 0.24]
'''
########################################################1.3 修改numpy的数组类型##########################
a=np.array([34,5,6,7,8,9,0])
print(a.shape)   #shpe有几个值就是几维
b=np.array([[2,4,1,5,6,1],[9,5,76,23,5,9]])
#查看数组的形状
print(b.shape)
#修改数组的形状
c=b.reshape(3,4);
print(c)
print(b.shape)
print(c.shape)
#数组转成一维
d=c.reshape(1,12);
print(d)
print(d.shape) #还是二维的
#正确的语法,转成一维
print(b.flatten())
########################################################1.4 numpy数组的计算##########################
'''
如果两个数组的后缘维度,(即从末尾开始算起的维度),的轴长度相符或其中一方的长度为1
,则认为他们是广播兼容的,广播会在缺失和(长度为1)的维度上进行
'''
a=np.array([[3,4,5,6,7,8],[1,2,3,4,5,6]])  #(2,6)
b=np.array([[5,6,7,8,9,0],[9,8,7,6,5,7]])
c=np.array([1,2,3,4,5,8])  #(6,)
print("======")
print(a+1);
print(a*2)
print(a+b)
print(a+c)
'''
======
[[4 5 6 7 8 9]
 [2 3 4 5 6 7]]
[[ 6  8 10 12 14 16]
 [ 2  4  6  8 10 12]]
[[ 8 10 12 14 16  8]
 [10 10 10 10 10 13]]
[[ 4  6  8 10 12 16]
 [ 2  4  6  8 10 14]]

'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值