Python 数据分析 - NumPy

NumPy是Python科学计算的基础库,提供了高效的多维数组对象ndarray,以及丰富的数学函数库。它支持大规模数组计算,包括向量、矩阵运算,并优化了数学计算速度。NumPy的特性包括:快速计算、多维数据结构、内置数学函数、统计函数及数组保存到文件等功能。主要操作有:创建数组(如zeros(), ones()等)、索引与切片、数组操作(添加、删除元素、排序)以及矩阵运算等。" 111845679,10294616,MySQL到Hive数据迁移与调度工具解析,"['数据迁移', 'Hadoop', '大数据处理', 'ETL工具', '任务调度']
摘要由CSDN通过智能技术生成

目录

numpy

typeDict

ndarray

zeros(), ones()

zeros_like(), ones_like()

full()

eye()

diag()

arange(), linspace()

reshape()

fromfunction()

random.random()

random.randint(), random.uniform()

random.randn()

random.normal()

索引、切片

索引

切片

布尔索引

diag()

unique()

ndarray操作

添加元素

删除元素

排序

计算

数组和矢量(数值)的运算

数组和数组的运算

数组的集合运算

stacking arrays

矩阵运算

数学函数

统计学函数

将数组保存到文件


numpy

NumPy是Numerical Python的简称,它是Python中的科学计算基本软件包,在使用时需要引用。

import numpy as np

虽然Python列表本身很强大,但是NumPy具有很多关键功能,从而比Python列表更具优势。
1. 在对大型数组执行操作时,NumPy的速度比Python列表的速度快了好几百倍。这是因为NumPy数组本身能节省内存,并且NumPy在执行算术、统计和线性代数运算时采用了优化算法。
2. NumPy可以表示向量和矩阵的多维数组数据结构。NumPy对矩阵运算进行了优化,使我们能够高效地执行线性代数运算,使其非常适合解决机器学习问题。
3. NumPy具有大量优化的内置数学函数,能够非常快速地进行各种复杂的数学计算,并且用到的代码很少(无需使用复杂的循环),使程序更容易读懂和理解。
4. Numpy handles more datatypes than Python.

 

typeDict

numpy.typeDict可以查看numpy支持的所有数据类型。

import numpy as np
print(np.typeDict)
{'?': <class 'numpy.bool_'>, 0: <class 'numpy.bool_'>, 'byte': <class 'numpy.int8'>, 'b': <class 'numpy.int8'>, 1: <class 'numpy.int8'>, 'ubyte': <class 'numpy.uint8'>, 'B': <class 'numpy.uint8'>, 2: <class 'numpy.uint8'>, 'short': <class 'numpy.int16'>, 'h': <class 'numpy.int16'>, 3: <class 'numpy.int16'>, 'ushort': <class 'numpy.uint16'>, 'H': <class 'numpy.uint16'>, 4: <class 'numpy.uint16'>, 'i': <class 'numpy.int32'>, 5: <class 'numpy.int32'>, 'uint': <class 'numpy.uint64'>, 'I': <class 'numpy.uint32'>, 6: <class 'numpy.uint32'>, 'intp': <class 'numpy.int64'>, 'p': <class 'numpy.int64'>, 7: <class 'numpy.int64'>, 'uintp': <class 'numpy.uint64'>, 'P': <class 'numpy.uint64'>, 8: <class 'numpy.uint64'>, 'long': <class 'numpy.int64'>, 'l': <class 'numpy.int64'>, 'L': <class 'numpy.uint64'>, 'longlong': <class 'numpy.longlong'>, 'q': <class 'numpy.longlong'>, 9: <class 'numpy.longlong'>, 'ulonglong': <class 'numpy.ulonglong'>, 'Q': <class 'numpy.ulonglong'>, 10: <class 'numpy.ulonglong'>, 'half': <class 'numpy.float16'>, 'e': <class 'numpy.float16'>, 23: <class 'numpy.float16'>, 'f': <class 'numpy.float32'>, 11: <class 'numpy.float32'>, 'double': <class 'numpy.float64'>, 'd': <class 'numpy.float64'>, 12: <class 'numpy.float64'>, 'longdouble': <class 'numpy.float128'>, 'g': <class 'numpy.float128'>, 13: <class 'numpy.float128'>, 'cfloat': <class 'numpy.complex128'>, 'F': <class 'numpy.complex64'>, 14: <class 'numpy.complex64'>, 'cdouble': <class 'numpy.complex128'>, 'D': <class 'numpy.complex128'>, 15: <class 'numpy.complex128'>, 'clongdouble': <class 'numpy.complex256'>, 'G': <class 'numpy.complex256'>, 16: <class 'numpy.complex256'>, 'O': <class 'numpy.object_'>, 17: <class 'numpy.object_'>, 'S': <class 'numpy.bytes_'>, 18: <class 'numpy.bytes_'>, 'unicode': <class 'numpy.str_'>, 'U': <class 'numpy.str_'>, 19: <class 'numpy.str_'>, 'void': <class 'numpy.void'>, 'V': <class 'numpy.void'>, 20: <class 'numpy.void'>, 'M': <class 'numpy.datetime64'>, 21: <class 'numpy.datetime64'>, 'm': <class 'numpy.timedelta64'>, 22: <class 'numpy.timedelta64'>, 'bool8': <class 'numpy.bool_'>, 'Bool': <class 'numpy.bool_'>, 'b1': <class 'numpy.bool_'>, 'int64': <class 'numpy.int64'>, 'Int64': <class 'numpy.int64'>, 'i8': <class 'numpy.int64'>, 'uint64': <class 'numpy.uint64'>, 'Uint64': <class 'numpy.uint64'>, 'u8': <class 'numpy.uint64'>, 'float16': <class 'numpy.float16'>, 'Float16': <class 'numpy.float16'>, 'f2': <class 'numpy.float16'>, 'float32': <class 'numpy.float32'>, 'Float32': <class 'numpy.float32'>, 'f4': <class 'numpy.float32'>, 'float64': <class 'numpy.float64'>, 'Float64': <class 'numpy.float64'>, 'f8': <class 'numpy.float64'>, 'float128': <class 'numpy.float128'>, 'Float128': <class 'numpy.float128'>, 'f16': <class 'numpy.float128'>, 'complex64': <class 'numpy.complex64'>, 'Complex32': <class 'numpy.complex64'>, 'c8': <class 'numpy.complex64'>, 'complex128': <class 'numpy.complex128'>, 'Complex64': <class 'numpy.complex128'>, 'c16': <class 'numpy.complex128'>, 'complex256': <class 'numpy.complex256'>, 'Complex128': <class 'numpy.complex256'>, 'c32': <class 'numpy.complex256'>, 'object0': <class 'numpy.object_'>, 'Object0': <class 'numpy.object_'>, 'bytes0': <class 'numpy.bytes_'>, 'Bytes0': <class 'numpy.bytes_'>, 'str0': <class 'numpy.str_'>, 'Str0': <class 'numpy.str_'>, 'void0': <class 'numpy.void'>, 'Void0': <class 'numpy.void'>, 'datetime64': <class 'numpy.datetime64'>, 'Datetime64': <class 'numpy.datetime64'>, 'M8': <class 'numpy.datetime64'>, 'timedelta64': <class 'numpy.timedelta64'>, 'Timedelta64': <class 'numpy.timedelta64'>, 'm8': <class 'numpy.timedelta64'>, 'UInt64': <class 'numpy.uint64'>, 'int32': <class 'numpy.int32'>, 'Int32': <class 'numpy.int32'>, 'i4': <class 'numpy.int32'>, 'uint32': <class 'numpy.uint32'>, 'UInt32': <class 'numpy.uint32'>, 'u4': <class 'numpy.uint32'>, 'int16': <class 'numpy.int16'>, 'Int16': <class 'numpy.int16'>, 'i2': <class 'numpy.int16'>, 'uint16': <class 'numpy.uint16'>, 'UInt16': <class 'numpy.uint16'>, 'u2': <class 'numpy.uint16'>, 'int8': <class 'numpy.int8'>, 'Int8': <class 'numpy.int8'>, 'i1': <class 'numpy.int8'>, 'uint8': <class 'numpy.uint8'>, 'UInt8': <class 'numpy.uint8'>, 'u1': <class 'numpy.uint8'>, 'complex_': <class 'numpy.complex128'>, 'int0': <class 'numpy.int64'>, 'uint0': <class 'numpy.uint64'>, 'single': <class 'numpy.float32'>, 'csingle': <class 'numpy.complex64'>, 'singlecomplex': <class 'numpy.complex64'>, 'float_': <class 'numpy.float64'>, 'intc': <class 'numpy.int32'>, 'uintc': <class 'numpy.uint32'>, 'int_': <class 'numpy.int64'>, 'longfloat': <class 'numpy.float128'>, 'clongfloat': <class 'numpy.complex256'>, 'longcomplex': <class 'numpy.complex256'>, 'bool_': <class 'numpy.bool_'>, 'bytes_': <class 'numpy.bytes_'>, 'string_': <class 'numpy.bytes_'>, 'unicode_': <class 'numpy.str_'>, 'object_': <class 'numpy.object_'>, 'str_': <class 'numpy.str_'>, 'int': <class 'numpy.int64'>, 'float': <class 'numpy.float64'>, 'complex': <class 'numpy.complex128'>, 'bool': <class 'numpy.bool_'>, 'object': <class 'numpy.object_'>, 'str': <class 'numpy.str_'>, 'bytes': <class 'numpy.bytes_'>, 'a': <class 'numpy.bytes_'>}
[Finished in 0.2s]

 

ndarray

numpy模块中最重要的特点就是N维数组对象(ndarray),数组是相同数据类型数据的集合,an array with n dimensions has a rank n.

ndarray属性dtype:数组元素数据类型。
ndarray属性ndim:可以返回数组的维度。
ndarray属性shape:可以返回当前数组的结构。
ndarray属性size:可以返回当前数组中元素的个数。

import numpy as np

arr = np.array([0,1,2,3,4])
print(arr)
print(type(arr), arr.dtype, arr.ndim, arr.shape, arr.size)

arr = np.array([[0,1,2,3,4],[5,6,7,8,9]])
print(arr)
print(type(arr), arr.dtype, arr.ndim, arr.shape, arr.size)

arr = np.array([ [[0,1,2],[1,2,3]], [[2,3,4],[3,4,5]], [[4,5,6],[5,6,7]], [[6,7,8],[7,8,9]] ])
print(arr)
print(type(arr), arr.dtype, arr.ndim, arr.shape, arr.size)
[0 1 2 3 4]
<class 'numpy.ndarray'> int64 1 (5,) 5
[[0 1 2 3 4]
 [5 6 7 8 9]]
<class 'numpy.ndarray'> int64 2 (2, 5) 10
[[[0 1 2]
  [1 2 3]]

 [[2 3 4]
  [3 4 5]]

 [[4 5 6]
  [5 6 7]]

 [[6 7 8]
  [7 8 9]]]
<class 'numpy.ndarray'> int64 3 (4, 2, 3) 24
[Finished in 0.2s]

在创建一个数组时,还可以指定元素数据类型,第二个参数加入dtype=numpy.XXX。

import numpy as np

arr = np.array([0,1,2,3,4])
print(arr)
print(type(arr), arr.dtype, arr.ndim, arr.shape, arr.size)

arr = np.array
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值