python中numpy模块的基本操作

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)).
一个用python实现的科学计算,包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。
NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
数组:存储的时同一种数据类型;
****主要适用于对数字类型进行运用

numpy的操作

import numpy as np


# 1. numpy中如何创建数组(矩阵)?
# 方法1:
a = np.array([1,2,3,4,5])
b = np.array([1,2,3,4,5])
c1 = np.array(range(1,6))
print(a+b)



# 方法2:
c2 = np.arange(1,6)
print(c1)
print(c2)


# 数组的类名: numpy.ndarray
print(type(c1))

# 查看数据元素的类型
print(c1.dtype)

# 2. 修改数组的数据类型
print(c1.astype('float'))
print(c1.astype('bool'))
print(c1.astype('?'))  # ?是bool类型的代号;

# 创建的时候指定数据类型
print(np.array([1,2,3,4], dtype=np.float))


# 3. 修改浮点数的小数位数
c3 = np.array([1.234556, 3.45464456, 5.645657567])
print(np.round(c3, 2))

python中numpy模块的基本操作_第1张图片

numpy读取CSV文件

import numpy as np

fname = "doc/eg6-a-student-data.txt"
dtype = np.dtype([('gender', '|S1'), ('height', 'f2')])
# fname: 文件的名称, 可以是文件名, 也可以是ugz或者bz2的压缩文件;
# dtype: 数据类型, 可选, 默认是float;
# delimiter: 分隔符字符串, 默认情况是任何的空格,
# skiprows: 跳过前xx行, 一般情况跳过第一行;
#  usecols: 读取指定的列, 可以是元组;
# unpack: 如果为True, 对返回的数组对象转置;
data = np.loadtxt(fname=fname, dtype=dtype, skiprows=9, usecols=(1, 3), unpack=True)
print(data)

python中numpy模块的基本操作_第2张图片
结果如下:
在这里插入图片描述
numpy数组的转置

import numpy as np

# 将一维数组转换为3行4列的二维数组
data = np.arange(12).reshape((3, 4))
print(data)


# 1).
print(data.transpose())

# 2). 0轴 , 1 轴
print(data.swapaxes(1, 0))

# 3).
print(data.T)

python中numpy模块的基本操作_第3张图片
numpy的索引和切片

import numpy as np

# 将一维数组转换为3行4列的二维数组
data = np.arange(12).reshape((3, 4))
# print(data)

# 取第一行的数据
print(data[0])

#  取第一列的数据
print(data.T[0])
print(data[:, 1])

# 获取多行
print(data[:2])

# 获取多行列
print(data.T[:2])
print(data[:, :2])


# 获取指定行的前几列;
print(data)
print(data[[0,2], :2])
print(data[:2, [0,2]])

python中numpy模块的基本操作_第4张图片
数组的拼接和交换

import numpy as np
t1 = np.arange(12).reshape(2, 6)
t2 = np.arange(12).reshape(2, 6)
t3 = np.arange(12).reshape(2, 6)

# 竖直拼接(vertically)
print(np.vstack((t1, t2, t3)))
# 水平拼接(horizontally)
print(np.hstack((t1, t2, t3)))

# *************************************************
# 数组的行列交换
t4 = np.arange(12).reshape(2, 6)
# 行交换(第一行和第二行进行交换)
print("原数据:\n", t4)
t4[[0, 1], :] = t4[[1, 0], :]
print("替换后的数据:\n", t4)

# 列交换(第3列和第5列进行交换)
print("原数据:\n", t4)
t4[:, [2, 4]] = t4[:, [4, 2]]
print("替换后的数据:\n", t4)

python中numpy模块的基本操作_第5张图片

你可能感兴趣的:(python中numpy模块的基本操作)