专栏首页深度学习之tensorflow实战篇Python—numpy模块下函数介绍(一)numpy.ones、empty等

Python—numpy模块下函数介绍(一)numpy.ones、empty等

NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推。在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量。比如说,二维数组相当于是一个一维数组,而这个一维数组中每个元素又是一个一维数组。所以这个一维数组就是NumPy中的轴(axes),而轴的数量——秩,就是数组的维数。 首先来看看以np.ones为例的英文参数介绍

numpy.ones(shape, dtype=None, order=’C’)

Return a new array of given shape and type, filled with ones. Parameters:

shape : int or sequence of ints

Shape of the new array, e.g., (2, 3) or 2.

dtype : data-type, optional

The desired data-type for the array, e.g., numpy.int8. Default is numpy.float64.

order : {‘C’, ‘F’}, optional

Whether to store multidimensional data in C- or Fortran-contiguous (row- or column-wise) order in memory.

Returns: out : ndarray

Array of ones with the given shape, dtype, and order.

1、empty(shape[, dtype, order])

依据给定形状和类型(shape[, dtype, order])返回一个新的空数组。

  参数:shape : 整数或者整型元组定义返回数组的形状;
    dtype : 数据类型,可选定义返回数组的类型。
    order : {‘C’, ‘F’}, 可选规定返回数组元素在内存的存储顺序:C(C语言)-rowmajor;F(Fortran)column-major。
print('\nnp.empty([2,2])生成的array=\n{}'.format(np.empty([2,2])))
print('\nnp.empty([2,2],dtype=int)生成的array=\n{}'.format(np.empty([2,2],dtype=int)))

2、empty_like(a)

  依据给定数组(a)的形状和类型返回一个新的空数组

a=np.array([[1.,2.,3.],[4.,5.,6.]])
print('\nnp.empty_like(a)生成的array=\n{}'.format(np.empty_like(a)))#输出:ndarray与数组a形状和类型一样的数组。

3、eye(N[, M, k, dtype])   返回一个对角线元素为1,其他元素为0的二维数组。   参数: N : 整数返回数组的行数; M : 整数,可选返回数组的列数。如果不赋值的话,默认等于N; k : 整数, 可选对角线序列号: 0 对应主对角线;,整数对应upper diagonal,负数对应lower diagonal; dtype : dtype, 可选 返回数组的数据类型 I : ndarray (N,M)该数组第k个对角线的元素为1,其他元素为0。

print('\nnp.eye(2,dtype=int)生成的array=\n{}'.format(np.eye(2,dtype=int)))
print('\nnp.eye(3,k=1)生成的array=\n{}'.format(np.eye(3,k=1)))

np.eye(2,dtype=int)生成的array=
[[1 0]
 [0 1]]

np.eye(3,k=1)生成的array=
[[ 0.  1.  0.]
 [ 0.  0.  1.]
 [ 0.  0.  0.]]

4、identity(n[, dtype])

  返回一个N维单位方阵。 参数:    n : 整数返回方阵的行列数; dtype : 数据类型,可选返回方阵的数据类型,默认为float. 返回值:输出: ndarrayn x n 单位方阵。

print('\nnp.identity(3)生成的array=\n{}'.format(np.identity(3)))
np.identity(3)生成的array=
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]

5、zeros(shape[, dtype, order])

  依据给定形状和类型(shape[, dtype, order])返回一个新的元素全部为0的数组。 参数: shape:int或者ints元组;定义返回数组的形状,形如:(2, 3)或2。 dtype:数据类型,可选。 返回数组的数据类型,例如:numpy.int8、默认numpy.float64。 order:{‘C’, ‘F’},可选,返回数组为多维时,元素在内存的排列方式是按C语言还是Fortran语言顺序(row- or columnwise)。 输出:ndarray给定形状,数据类型的数组。

print('\nnp.zeros(5)生成的array=\n{}'.format(np.ones(5)))

print('\nnp.zeros((5,),dtype=np.int)生成的array=\n{}'.format(np.zeros((5,),dtype=np.int)))

print('\nnp.zeros((2,1))生成的array=\n{}'.format(np.zeros((2,1))))

S=(2,2)
print('\nnp.zeros(S)生成的array=\n{}'.format(np.zeros(S)))

print('\n np.zeros((2,), dtype=[(’x’, ’i4’), (’y’, ’i4’)])生成的array=\n{}'.format( np.zeros((2,), dtype=[('x','i4'), ('y','i4')])))
print(type(np.zeros((2,), dtype=[('x','i4'), ('y','i4')])))


x=np.arange(6)
x=x.reshape((2,3))  #([[0, 1, 2],[3, 4, 5]])
print('\nnp.zeros_like(x)生成的array=\n{}'.format(np.zeros_like(x)))

y=np.arange(3,dtype=np.float)   #([ 0., 1., 2.])
print('\nnp.zeros_like(y)生成的array=\n{}'.format(np.zeros_like(y)))

np.zeros(5)生成的array=
[ 1.  1.  1.  1.  1.]

np.zeros((5,),dtype=np.int)生成的array=
[0 0 0 0 0]

np.zeros((2,1))生成的array=
[[ 0.]
 [ 0.]]

np.zeros(S)生成的array=
[[ 0.  0.]
 [ 0.  0.]]

 np.zeros((2,), dtype=[(’x’, ’i4’), (’y’, ’i4’)])生成的array=
[(0, 0) (0, 0)]
<class 'numpy.ndarray'>

np.zeros_like(x)生成的array=
[[0 0 0]
 [0 0 0]]

np.zeros_like(y)生成的array=
[ 0.  0.  0.]

6、ones(shape[, dtype, order])

  依据给定形状和类型(shape[, dtype, order])返回一个新的元素全部为1的数组。相应用法同5.zeros

print('\nnp.ones(4)生成的array=\n{}'.format(np.ones(4)))

print('\nnp.ones((4,),dtype=np.int)生成的array=\n{}'.format(np.ones((4,),dtype=np.int)))

print('\nnp.ones((2,1))生成的array=\n{}'.format(np.ones((2,1))))

S=(2,2)
print('\nnp.ones(S)生成的array=\n{}'.format(np.ones(S)))

a=np.array([[1,2,3],[4,5,6]])
print('\nnp.ones_like(a)生成的array=\n{}'.format(np.ones_like(a)))#等同于a.copy().fill(1)

np.ones(4)生成的array=
[ 1.  1.  1.  1.]

np.ones((4,),dtype=np.int)生成的array=
[1 1 1 1]

np.ones((2,1))生成的array=
[[ 1.]
 [ 1.]]

np.ones(S)生成的array=
[[ 1.  1.]
 [ 1.  1.]]

np.ones_like(a)生成的array=
[[1 1 1]
 [1 1 1]]

其中i4与i8等可以参考:直通车 Little-Endian与BIG-ENDIAN参考:直通车 其他方面数组操作参考连接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【NLP CS224N笔记】Lecture 3 GloVe: Global Vectors for Word Representation

    可以很明显地看到该向量非常稀疏。常见的解决办法有两种:一是使用稀疏矩阵更新运算来更新矩阵\(U,V\)的特定的列向量。二是使用哈希来更新,即key为word s...

    marsggbo
  • 【转载】负采样算法

    任何采样算法都应该保证频次越高的样本越容易被采样出来。基本的思路是对于长度为1的线段,根据词语的词频将其公平地分配给每个词语:

    marsggbo
  • 【转载】双调排序Bitonic Sort,适合并行计算的排序算法

    双调排序是data-independent的排序, 即比较顺序与数据无关的排序方法, 特别适合做并行计算,例如用GPU、fpga来计算。

    marsggbo
  • 策略模式

    在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 策略模式中专门有一个对象封装算法,...

    用户2436820
  • pyhanlp 共性分析与短语提取内容详解

    HanLP中的词语提取是基于互信息与信息熵。想要计算互信息与信息熵有限要做的是 文本分词进行共性分析。在作者的原文中,有几个问题,为了便于说明,这里首先给出短语...

    IT小白龙
  • 各种密码学算法的GUI编程实现(DES、AES、Present、扩展欧几里得算法、素性检测)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    从入门到进错门
  • 数据结构与算法 -- 哈夫曼树思想与创建详解1

      给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树...

    cMusketeer
  • Lyndon Word学习笔记

    定义:对于字符串\(s\),若\(s\)的最小后缀为其本身,那么称\(s\)为Lyndon串

    attack
  • linux下md5sum用法 (查看文件或字符串的md5值)

    MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意...

    洗尽了浮华
  • 机器学习之决策树理论

    在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。数据分类是一个两阶段过程,包括模型学习阶段(构建分类模型...

    用户1359560

扫码关注云+社区

领取腾讯云代金券