1.      什么是numpy
  2.      numpy基础
  3.      numpy常用方法
  4.      numpy常用统计方法

 

 

  • 什么是numpy

       一个在Python中做科学计算的基础库,重在数值计算,也是大部分PYTHON科学计算库的基础库,多用于在大型、多维数组上执行数值运算

  1. 快速
  2. 方便
  3. 科学计算的基础库

 

  •     numpy基础

(1)多维数组创建

import numpy as np

a= np.array([1,2,3,4,5,6],type=np.int64)
b= np.array(range(1,6))
c= np.arange(1,6,1)

print(a)
print(b)
print(c)


结果:

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





np.array(list)    将一个列表或序列转化为数组 
np.adarray(a,b,c) 序列表达式直接产生一个数组 从a到b,步长为c。
                    np特有的,猜测是 b= np.array(range(a,b,c)的简写
PS:
  创建多维数组时可以

(2)矩阵数据类型

#查看多维数组的数据类型
a.dtype

#调整数据类型
a.astype("int8")

#特别的,修改小数的位数
np.round(a,2) #保留两位小数   python中也是如:round(random.random(),2) 随机产生一个0-1之间的小数,保留两位



PS:
    type(a)

    结果:
    numpy.ndarray

   type(a) numpy中多维数组的对象类型是 numpy.ndarray 即numpy多维数组
   a.dtype 数据的数据类型

黑马数据分析 Numpy

(3)多维数组形状

d = np.array([[1,2,3,4,5],[6,7,8,9,10]])
e = np.array([ [[1,2,3,4,5],[6,7,8,9,10]],[[1,2,3,4,5],[6,7,8,9,10]] ])

#查看多维数组形状
print(a.shape)
print(d.shape)
print(e.shape)

#改变多维数组形状
d.reshape(5,2)

结果:

(6,)       一维数组的shape 一个数
(2, 5)     二维数组的shape 二个数
(2, 2, 5)  三维数组的shape 三个数,2 块 2行3列的
                                 0轴(维)是2, 1轴(维)是2, 2轴(维)是5

  注意:
     d.reshape reshape操作是有返回值的,需要有一个对象去接收改变后的多维数组。一般有返回值的操作都不改变原对象d。

 

PS:多维数组的轴(维度)

     在numpy中轴(axis)可以理解为方向,使用0,1,2...数字表示,

     对于一个一维数组,只有一个0轴, 对于2维数组(shape(2,2)),有0轴和1轴, 对于三维数组(shape(2,2, 3)),有0,1,2轴

 

黑马数据分析 Numpy二维数组 0轴横轴,1轴是纵轴

 黑马数据分析 Numpy shape=(2, 2, 5),  即:0轴=2; 1轴=2; 2轴=5 ;即2块,2行,2列的多维数组

(4)多维数组计算

    数组与数字:          如 a+1,a-1,a*3,a/2, "广播" - 将标量"广播"运算到到各个元素
    数组与数组(同形状):对应位置运算
    数组与数组(不同形状):只要在某一维度,如行或列相同,就在该维度计算,否则不能计算

 

   numpy 转置:

      a 是二维数组

              a.transpose()

              a.swapaxes(1.0)  # 交换轴,也能实现转置

              a.T

     以上三种方法都能实现转置


    

  •      numpy常用方法

(1)numpy读取本地数据 np.loadtxt

     np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)

黑马数据分析 Numpy

     fname:文件路径     

     dtype:读取成什么数据类型 

     delimiter:以什么作为分割

     skiprows:跳过前几行,一般是跳过表头

     usecols :使用哪几列

     unpack:转置

import numpy as np

us_file_path="C:\\Users\\Administrator\\Desktop\\数据分析\\数据分析资料\\day03\\code\\youtube_video_data\\US_video_data_numbers.txt"
t_us = np.loadtxt(us_file_path ,delimiter=",",dtype="int")

print(t_us)

结果:

[[4394029  320053    5931   46245]
 [7860119  185853   26679       0]
 [5845909  576597   39774  170708]
 ...
 [ 142463    4231     148     279]
 [2162240   41032    1384    4737]
 [ 515000   34727     195    4722]]

numpy索引和切片

f = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
print(f)

# 取行
print(f[2])           # 单行         或 print(f[2,:])
print(f[1:2])         # 连续多行     或 print(f[1:2,:]) 
print(f[[0,2],:])     # 不连续多行   或 f[[0,2]]


# 取列
print(f[:,2])         # 单列
print(f[:,1:])        # 连续多列
print(f[:,[1,2]])     # 不连续多列

# 取多个不相邻的点
print([[0,2,2],[0,2,4]]) #取[0,0],[2,2],[2,4]三点


PS :

 索引从0开始
 1:3 取不到3,取2,3两列
 取不连续多值用[],[[1,3],:] 取2,4两行

 

相关文章: