Numpy的array数组操作

本文介绍了如何使用Numpy进行数组操作,包括从文件加载数据、指定数据类型、跳过文件头部、创建一维和二维数组等基本操作。通过实例演示了如何读取特定的数据格式,并展示了如何选取数组中的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy的array数组操作

(一边学一边更新)
源文件
这里写图片描述

import numpy
world_alcohol = numpy.genfromtxt("E:\machinelearning\machinelearninginaction\Ch02\datingTestSet.txt",delimiter="\t")
print(type(world_alcohol))
world_alcohol

nan:无法转换文档中文件格式,默认转换的类型是float,修改类型需要自己设置dtype属性
这里写图片描述

import numpy
world_alcohol = numpy.genfromtxt("E:\machinelearning\machinelearninginaction\Ch02\datingTestSet.txt",delimiter="\t",dtype='str')
print(type(world_alcohol))
world_alcohol

这里写图片描述

#去掉第一行
import numpy
world_alcohol = numpy.genfromtxt("E:\machinelearning\machinelearninginaction\Ch02\datingTestSet.txt",delimiter="\t",dtype='U75',skip_header=1)
print(type(world_alcohol))
world_alcohol

首行文字不需要,删除掉,可以设置skip_header=1
这里写图片描述

#向量(一维数组)
vector = numpy.array([5,10,15,20])
print vector
vector.dtype
#前三个
print(vector[0:3])
print(vector[0:1])

这里写图片描述

#二维数组
matrix = numpy.array(
    [
    [54563546,1056786,15635465],[27860,22896789,36872],[50006000,68400000000,45400000000000]
    ]
)
print matrix
#科学计数法该如何表示呢?
#所有行的第一列
print '=============================================================='
print matrix[:,1]
#所有行的前两列
print matrix[:,0:2]

这里写图片描述

### 创建数组 NumPyPython 中用于科学计算的基础库,它提供了一个高性能的多维数组对象 `ndarray`。创建数组是使用 NumPy 进行数据处理的第一步。可以通过 `np.array()` 函数从 Python 的列表或元组中创建数组。例如,创建一个一维数组: ```python import numpy as np a = np.array([1, 2, 3]) ``` 同样,也可以创建二维数组或者更高维度的数组,只需要提供相应的嵌套列表即可: ```python b = np.array([[1, 2], [3, 4]]) ``` 需要注意的是,在创建数组时,所有元素必须是相同的数据类型,NumPy 会自动推断出最适合的数据类型。如果需要指定数据类型,可以在创建数组时通过 `dtype` 参数来设置: ```python c = np.array([1, 2, 3], dtype=np.float64) ``` ### 数组索引和切片 NumPy 数组支持类似于 Python 序列的索引和切片操作,但是功能更加强大。对于一维数组,索引和切片的操作Python 列表相似: ```python d = np.arange(10) print(d[2]) # 输出索引为 2 的元素 print(d[2:5]) # 输出索引从 2 到 5(不包括 5)的元素 ``` 对于多维数组,可以使用逗号分隔的索引值来进行索引和切片: ```python e = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(e[1, 2]) # 输出第 1 行第 2 列的元素 print(e[0:2, 1:]) # 输出前两行,从第二列开始的所有元素 ``` ### 数组形状操作 NumPy 提供了多种方法来改变数组的形状而不改变其数据。最常用的方法是 `reshape` 函数,它可以将一个数组重新排列成新的形状: ```python f = np.arange(15).reshape(3, 5) ``` 此外,还可以使用 `ravel` 函数将多维数组展平为一维数组: ```python g = f.ravel() ``` ### 数组运算 NumPy 支持标准的算术运算符,这些运算符会作用于数组中的每一个元素,产生一个新的数组作为结果: ```python h = np.array([1, 2, 3]) i = np.array([4, 5, 6]) j = h + i # 加法 k = h * i # 乘法 l = h ** 2 # 幂运算 ``` 除了基本的算术运算外,NumPy 还提供了许多数学函数,如 `np.sin`、`np.cos` 和 `np.exp` 等,它们同样会作用于数组中的每一个元素: ```python m = np.sin(h) n = np.exp(h) o = np.sqrt(h) ``` ### 数组广播 广播是 NumPy 中一种强大的机制,允许不同形状的数组进行算术运算。当两个数组的形状不同时,NumPy 会尝试调整较小数组的形状以匹配较大的数组。这种机制使得代码更加简洁高效: ```python p = np.array([1, 2, 3]) q = p + 5 # 将标量加到数组的每个元素上 r = np.array([[1, 2], [3, 4]]) s = r + [5, 6] # 将一维数组加到二维数组的每一行上 ``` 以上就是使用 NumPy 进行基本数组操作的一些介绍,希望对您有所帮助。如果您有兴趣深入了解某个特定主题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值