数据分析必备:一步步教你如何用numpy改变数据处理(4)

79 篇文章 0 订阅
18 篇文章 0 订阅

介绍:
NumPy中的数组是一种高效的多维数组对象,通常称为ndarray(N-dimensional array),用于存储和操作大量数据。以下是关于NumPy数组的一些基本信息:
创建方法:可以通过传递一个Python列表并使用np.array()函数来创建NumPy数组。这个数组可以是一维的,也可以是多维的。
数据类型:在创建数组时,可以指定数据类型,如整型、浮点型或复数型等。这有助于确保数组中的数据具有一致的类型,从而提高数据处理的效率和准确性。
属性:NumPy数组具有形状(shape)、数据类型(dtype)和维度(ndim)等属性,这些属性描述了数组的结构特征。
操作:NumPy提供了丰富的数组操作功能,包括数学运算、逻辑运算、数组变形、切片和索引等,这些都是在进行科学计算和数据分析时非常有用的功能。
性能:由于NumPy底层是用C语言编写的,因此它的数组操作速度非常快,尤其是在处理大型数据集时,性能优势明显。
应用:NumPy数组广泛应用于机器学习、图像处理、信号处理等领域,是Python科学计算生态系统中的核心组件之一。
内存管理:NumPy数组在内存中是连续存储的,这意味着它们可以直接访问内存地址,从而进一步提高了数据处理的速度。
兼容性:NumPy数组与许多其他Python库兼容良好,例如Pandas、Matplotlib和SciPy等,这使得它成为数据分析和科学计算中不可或缺的工具。
广播:NumPy支持广播功能,允许在不同形状的数组之间进行操作,这大大简化了复杂数学运算的实现。
通用函数:NumPy还提供了一系列通用函数(ufuncs),这些函数可以对数组中的每个元素进行操作,而不需要编写循环。
了解和掌握NumPy数组的使用对于进行高效的科学计算和数据分析是非常重要的。通过学习和实践,你可以更好地利用NumPy的强大功能来解决各种计算问题。

1、NumPy 从已有的数组创建数组

本章节我们将学习如何从已有的数组创建数组。
numpy.asarray
numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。

numpy.asarray(a, dtype = None, order = None)

参数说明:
在这里插入图片描述
实例
将列表转换为 ndarray:

import numpy as np 
x =  [1,2,3] 
a = np.asarray(x)  
print (a)

输出结果为:

[1  2  3]

将元组转换为 ndarray:

import numpy as np 
 
x =  (1,2,3) 
a = np.asarray(x)  
print (a)

输出结果为:

[1  2  3]

将元组列表转换为 ndarray:

import numpy as np 
x =  [(1,2,3),(4,5)] 
a = np.asarray(x)  
print (a)

输出结果为:

[(1, 2, 3) (4, 5)]

设置了 dtype 参数:

import numpy as np 
x =  [1,2,3] 
a = np.asarray(x, dtype =  float)  
print (a)

输出结果为:

[ 1.  2.  3.]
numpy.frombuffer
numpy.frombuffer 用于实现动态数组。

numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)

注意:buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b。
参数说明:
在这里插入图片描述

import numpy as np 
 
s =  b'Hello World' 
a = np.frombuffer(s, dtype =  'S1')  
print (a)

输出结果为:

[b'H' b'e' b'l' b'l' b'o' b' ' b'W' b'o' b'r' b'l' b'd']
import numpy as np
s =  'Hello World'
a = np.frombuffer(s, dtype =  'S1')
print (a)

输出结果为:

['H' 'e' 'l' 'l' 'o' ' ' 'W' 'o' 'r' 'l' 'd']

1.1 、numpy.fromiter

numpy.fromiter 方法从可迭代对象中建立 ndarray 对象,返回一维数组。

numpy.fromiter(iterable, dtype, count=-1)

在这里插入图片描述

import numpy as np 
 
# 使用 range 函数创建列表对象  
list=range(5)
it=iter(list)
 
# 使用迭代器创建 ndarray 
x=np.fromiter(it, dtype=float)
print(x)

输出结果为:

[0. 1. 2. 3. 4.]

2、 NumPy 从数值范围创建数组

这一章节我们将学习如何从数值范围创建数组。

2.1numpy.arange

numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)

根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。
参数说明:
在这里插入图片描述
实例
生成 0 到 4 长度为 5 的数组:

mport numpy as np
x = np.arange(5)  
print (x)

输出结果如下:

[0  1  2  3  4]

设置返回类型位 float:

import numpy as np
 
# 设置了 dtype
x = np.arange(5, dtype =  float)  
print (x)

输出结果如下:

[0.  1.  2.  3.  4.]

设置了起始值、终止值及步长:

import numpy as np
x = np.arange(10,20,2)  
print (x)

输出结果如下:

[10  12  14  16  18]

2.2、numpy.linspace

numpy.linspace 函数用于创建一个一维数组,数组是一个等差数列构成的,格式如下:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数说明:
在这里插入图片描述
以下实例用到三个参数,设置起始点为 1 ,终止点为 10,数列个数为 10。

import numpy as np
a = np.linspace(1,10,10)
print(a)

输出结果为:

[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

设置元素全部是1的等差数列:

import numpy as np
a = np.linspace(1,1,10)
print(a)

输出结果为:

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

将 endpoint 设为 false,不包含终止值:

import numpy as np
 
a = np.linspace(10, 20,  5, endpoint =  False)  
print(a)

输出结果为:

[10. 12. 14. 16. 18.]

如果将 endpoint 设为 true,则会包含 20。
以下实例设置间距。

import numpy as np
a =np.linspace(1,10,10,retstep= True)
print(a)
# 拓展例子
b =np.linspace(1,10,10).reshape([10,1])
print(b)

输出结果为:

(array([ 1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10.]), 1.0)
[[ 1.]
 [ 2.]
 [ 3.]
 [ 4.]
 [ 5.]
 [ 6.]
 [ 7.]
 [ 8.]
 [ 9.]
 [10.]]

2.3、numpy.logspace

numpy.logspace 函数用于创建一个于等比数列。格式如下:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

base 参数意思是取对数的时候 log 的下标。
在这里插入图片描述

import numpy as np
# 默认底数是 10
a = np.logspace(1.0,  2.0, num =  10)  
print (a)

输出结果为:

[ 10.           12.91549665     16.68100537      21.5443469  27.82559402      
  35.93813664   46.41588834     59.94842503      77.42636827    100.    ]

将对数的底数设置为 2 :

import numpy as np
a = np.logspace(0,9,10,base=2)
print (a)

输出结果

[  1.   2.   4.   8.  16.  32.  64. 128. 256. 512.]
  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值