博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据挖掘 numpy之数组定义
阅读量:5986 次
发布时间:2019-06-20

本文共 3202 字,大约阅读时间需要 10 分钟。

  hot3.png

Numpy数组

NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。

NumPy的数组类被称作 ndarray。

ndarray对象属性

  • ndarray.ndim

    数组轴的个数,在python的世界中,轴的个数被称作秩。

  • ndarray.shape

    数组的维度。这是一个指示数组在每个维度上大小的整数元组。例如一个n排m列的矩阵,它的shape属性将是(2,3),这个元组的长度显然是秩,即维度或者ndim属性。

  • ndarray.size

    数组元素的总个数,等于shape属性中元组元素的乘积。

  • ndarray.dtype

    一个用来描述数组中元素类型的对象,可以通过创造或指定dtype使用标准Python类型。另外NumPy提供它自己的数据类型。

  • ndarray.itemsize

    数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsiz属性值为8(=64/8),又如,一个元素类型为complex32的数组item属性为4(=32/8).

  • ndarray.data

    包含实际数组元素的缓冲区,通常我们不需要使用这个属性,因为我们总是通过索引来使用数组中的元素。

from numpy import *a = arange(15).reshape(3, 5)# arange(n) 返回长度为n的数组(array对象)# reshape() 数组新的shape属性应该要与原来的配套。# 如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。print("数组的值:\n {}".format(a))print("数组维度: {}".format(a.shape))print("数组的秩: {}".format(a.ndim))print("数组中元素类型: {}".format(a.dtype))print("数组中元素大小(字节为单位): {}".format(a.itemsize))print("数组中元素个数: {}".format(a.size))
"D:\Python 3.6.2\python.exe" E:/PyPro/DM/np.py数组的值: [[ 0  1  2  3  4] [ 5  6  7  8  9] [10 11 12 13 14]]数组维度: (3, 5)数组的秩: 2数组中元素类型: int32数组中元素大小(字节为单位): 4数组中元素个数: 15Process finished with exit code 0

数组的创建

array函数

from numpy import *# array()创建a = array([    1, 2, 3, 4])print(a)# 序列转化多维数组b = array([    (1, 2, 3, 4),    (5, 4, 3, 2)])print(b)# 创建时指定数组类型c = array([    [1, 2],    [2, 3],    [0.2, 4]], dtype=complex)print(c)print("c的元素类型为: {}".format(c.dtype))
"D:\Python 3.6.2\python.exe" E:/PyPro/DM/np.py[1 2 3 4][[1 2 3 4] [5 4 3 2]][[ 1.0+0.j  2.0+0.j] [ 2.0+0.j  3.0+0.j] [ 0.2+0.j  4.0+0.j]]c的元素类型为: complex128

函数创建数组

函数 zeros 创建一个全是0的数组;

函数 ones 创建一个全1的数组;

函数 empty 创建一个内容随机并且依赖与内存状态的数组;

默认创建的数组类型(dtype)都是float64。

from numpy import *'''函数 zeros 创建一个全是0的数组;函数 ones 创建一个全1的数组;函数 empty 创建一个内容随机并且依赖与内存状态的数组;默认创建的数组类型(dtype)都是float64。'''a = zeros((3, 4))print(a)b = ones((2, 8))print(b)c = empty((3, 2))
"D:\Python 3.6.2\python.exe" E:/PyPro/DM/np.py[[ 0.  0.  0.  0.] [ 0.  0.  0.  0.] [ 0.  0.  0.  0.]][[ 1.  1.  1.  1.  1.  1.  1.  1.] [ 1.  1.  1.  1.  1.  1.  1.  1.]]

NumPy提供一个类似arange的函数返回数组而不是列表。arange(m, n, k)表示创建m-n(包含m但不办函n)中步长为k的数组。

当 arange 使用浮点数参数时,由于有限的浮点数精度,通常无法预测获得的元素个数。 因此,最好使用函数 linspace 去接收我们想要的元素个数来代替用range来指定步长。

from numpy import *a = arange(10, 20, 5)print(type(a))print(a)'''当 arange 使用浮点数参数时,由于有限的浮点数精度,通常无法预测获得的元素个数。因此,最好使用函数 linspace 去接收我们想要的元素个数来代替用range来指定步长。'''b = arange(0, 2, 0.3)print(b)
"D:\Python 3.6.2\python.exe" E:/PyPro/DM/np.py
[10 15][ 0. 0.3 0.6 0.9 1.2 1.5 1.8]

其它函数array, zeros, zeros_like, ones, ones_like, empty, empty_like, arange, linspace, rand, randn, fromfunction, fromfile参考: 

数组打印

打印一个数组,NumPy以类似嵌套列表的形式显示它,但是呈以下布局: 最后的轴从左到右打印 次后的轴从顶向下打印 剩下的轴从顶向下打印,每个切片通过一个空行与下一个隔开。

from numpy import *'''打印一个数组,NumPy以类似嵌套列表的形式显示它,但是呈以下布局:最后的轴从左到右打印次后的轴从顶向下打印剩下的轴从顶向下打印,每个切片通过一个空行与下一个隔开'''a = arange(24).reshape(2, 3, 4)print(a)'''如果一个数组用来打印太大了,NumPy自动省略中间部分而只打印角落禁用NumPy的这种行为并强制打印整个数组,你可以设置printoptions参数来更改打印选项set_printoptions(threshold='nan')'''b = arange(5000)print(b)
"D:\Python 3.6.2\python.exe" E:/PyPro/DM/np.py[[[ 0  1  2  3]  [ 4  5  6  7]  [ 8  9 10 11]] [[12 13 14 15]  [16 17 18 19]  [20 21 22 23]]][   0    1    2 ..., 4997 4998 4999]

 

转载于:https://my.oschina.net/gain/blog/1797395

你可能感兴趣的文章
Git 常见命令
查看>>
聚集索引和非聚集索引
查看>>
du命令
查看>>
关于值传递和引用传递的误区
查看>>
经典排序算法和C++ stl 排序算法
查看>>
关闭eclipse自动弹出的帮助
查看>>
Head First C 第九章 进程与系统调用 出错处理
查看>>
RestyGWT简介
查看>>
Node.js项目配置文件的设计
查看>>
#hihoCoder: 1501 : 风格不统一如何写程序
查看>>
nginx最大连接压测和调优
查看>>
yii2表单模型样式修改(自定义)
查看>>
Java 面试题
查看>>
DOM对象转换为jQuery对象
查看>>
flex相关技术牛人 博客
查看>>
DedeCMS Error: (PHP 5.3 and above) Please set r...
查看>>
发邮件mailto用法
查看>>
一小时包教会 —— webpack 入门指南
查看>>
Vue.js——60分钟组件快速入门(上篇)
查看>>
iOS Code Review 1.0
查看>>