numpy的使用

NumPy介绍

  NumPy是Python中科学计算的基础包。它Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,如包括数学,逻辑,形状操作,排序,选择,输入输出,离散傅里叶变换,基本线性代数,基本统计运算和随机模拟等等。

  

  • ndarray.ndim - 数组的轴(维度)的个数。在Python世界中,维度的数量被称为rank。
  • ndarray.shape - 数组的维度。这是一个整数的元组,表示每个维度中数组的大小。对于有 n 行和 m 列的矩阵,shape 将是 (n,m)。因此,shape 元组的长度就是rank或维度的个数 ndim
  • ndarray.size - 数组元素的总数。这等于 shape 的元素的乘积。
  • ndarray.dtype - 一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。例如numpy.int32、numpy.int16和numpy.float64。
  • ndarray.itemsize - 数组中每个元素的字节大小。例如,元素为 float64类型的数组的 itemsize 为8(=64/8),而 complex32 类型的数组的 itemsize 为4(=32/8)。它等于 ndarray.dtype.itemsize 。
  • ndarray.data - 该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引访问数组中的元素。

 

import numpy as np
import random

a = np.array([[1., 7., 0.], [-2., 3., 3.], [-2., 1., 2.]], dtype='float64')
b = np.array([[3., 2., 1.], [-5., 6., 2.], [2., -1., -2.]], dtype='float64')
# 指定数据类型

print(a)

# b = np.round(a, 3)
# 构造小数,控制位数,约等于的意思
# print(b, '\n', round(random.random(),3))
#
# print('类型', type(a))
#
# print('维度数==>', a.ndim) #数组的维度数
#
# print('维数==>', a.shape) #数组的维数
#
# print('总数==>', a.size) #数组元素的总数
#
# print('类型==>', a.dtype) #数组的类型
#
# print('每个元素占有的字节大小==>', a.itemsize) #数组中每个元素占有的字节大小
#
# print('缓存区==>', a.data) #数组元素的缓存区
#
#
#
# print(a.T)
# print(a.transpose())
# print(a.swapaxes(1, 0)) # 默认a.swapaxes(1, 0)
# 转置


# print('取连续的多行,第二行,第一行,第三行')
# print(a[[1, 0, 2]])
#
# print('取连续多列')
# print(a[:, 1:2])


# print(a < 0)
# print('小于0的\n', a[a < 0])
# a[a < 0] = 3
# print(a)
# 将a中小于0的数字替换为3

# b = np.where(a < 0, 1, 3)
# 三元运算符,a小于0时,数字置为1,否则置为3
# print(b)

# c = a.clip(0, 2)
# 裁剪小于等于0的替换为0,大于等于2的变为2
# print(c)

# c = np.vstack((a, b))
# print(c)
# 竖直拼接,里面是元祖

# c = np.hstack((a, b))
# print(c)
# 水平拼接,里面是元组


# a[[1, 2], :] = a[[2, 1], :]
# print(a)
# 数组行列交换


# c = np.argmax(a, axis=0)
# print(c)
# 获取列方向最大值位置
# c = np.argmin(a, axis=1)
# print(c)
# 获取行方向最小值位置


# c = np.zeros((3, 4))
# 0矩阵
# print(c)

# c = np.ones((3, 4))
# 单位矩阵
# print(c)


# c = np.eye(3)
# print(c)
# 创建一个对角线为为1的数组(方阵)


# 随机数

np.random.seed(4)
# 随机数种子,s是给定的种子值,因为计算机生成的是伪随机数,所以通过设定相同的随机数种子,可以每次生成相同的随机数
# 开启随机后,后面的随机数和上一次的一样

# c = np.random.rand(2, 3)
# print(c)
# 创建2行3列均匀分布随机数组,非点数,范围从0-1

# c = np.random.randn(2, 3)
# print(c)
# 创建3维标准正太分布随机数组,浮点数,平均数0,标准差1

# c = np.random.randint(1, 5, (2, 4))
# print(c)
# 从给定上下限范围选取随机数证书,范围是1,5,形状是2行4列

# c = np.random.uniform(1, 4, (2, 4))
# 产生具有均匀分布的数组,1为起始值,4为结束值,2行4列

# c = np.random.normal(loc, scal, (size)) 从指定正态分布中随机抽取样本,
# 分布中心是loc(概率分布的均值),标准差是scale,形状是size

# print(type(np.nan))
# 表示非数字

# print(np.count_nonzero(a))
# 统计非零个数

# print(np.isnan(a))
# 显示是否为nan

# print(np.sum(a))
# 求和,全部数字加起来

# print(np.sum(a, axis=0))
# 计算行方向,算每一列的和,

# print(a.mean(axis=0))
# 计算每一列的均值

# print(np.median(a, axis=0))
# 计算每一列的中值

# print(np.min(a, axis=0))
# 计算每一列的最小值

# print(np.ptp(a, axis=0))
# 计算每一列的极值

# print(a.std(axis=0))
# 标准差
a = np.loadtxt('we.csv', dtype=np.float, delimiter=',', skiprows=0, usecols=None, unpack=False)
b = np.loadtxt('we.csv', dtype=np.float, delimiter=',', skiprows=0, usecols=None, unpack=True)
print(a, '\n', b)

# frame 文件,字符串或产生器,可以是.gz或bz2压缩文件
# dtype 数据类型,可选,csv的字符串以什么数据类型读入数组中,默认np.float
# delimiter 分隔字符串,默认是任何空格,改为逗号
# skiprows 跳过前面x行,一般跳过第一行表头
# usecols 读取指定的列,索引,元组类型
# unpack 如果True,读入属性将分别写入不同数组变量(数组转置),False读入数据只写入一个数组变量,默认False


a = np.array([[1., 7., 0.], [-2., 1., 2.]], dtype='float64')

# 转置
print(a.T)
print(a.transponse())



  

 

posted @ 2020-06-22 19:28  King~~~  阅读(149)  评论(0编辑  收藏  举报