【Python】【numpy-汇总1】所有生成函数的示例代码

1.生成函数汇总

生成函数

作用

np.array( x)

np.array( x, dtype)

将输入数据转化为一个ndarray

将输入数据转化为一个类型为type的ndarray

np.asarray( array )

将输入数据转化为一个新的(copy)ndarray

np.ones( N )

np.ones( N, dtype)

np.ones_like( ndarray )

生成一个N长度的一维全一ndarray

生成一个N长度类型是dtype的一维全一ndarray

生成一个形状与参数相同的全一ndarray

np.zeros( N)

np.zeros( N, dtype)

np.zeros_like(ndarray)

生成一个N长度的一维全零ndarray

生成一个N长度类型位dtype的一维全零ndarray

类似np.ones_like( ndarray )

np.empty( N )

np.empty( N, dtype)

np.empty_like(ndarray)

生成一个N长度的未初始化一维ndarray

生成一个N长度类型是dtype的未初始化一维ndarray

类似np.ones_like( ndarray )

np.eye( N )

np.identity( N )

创建一个N * N的单位矩阵(对角线为1,其余为0)

np.arange( num)

np.arange( begin, end)

np.arange( begin, end, step)

生成一个从0到num-1步数为1的一维ndarray

生成一个从begin到end-1步数为1的一维ndarray

生成一个从begin到end-step的步数为step的一维ndarray

np.where(cond, ndarray1, ndarray2)

根据条件cond,选取ndarray1或者ndarray2,返回一个新的ndarray



np.in1d(ndarray, [x,y,...])

检查ndarray中的元素是否等于[x,y,...]中的一个,返回bool数组

2.函数使用示例

np.array

# -*- coding: utf-8 -*-
"""
@author: 蔚蓝的天空tom
Talk is cheap, show me the code
Aim:numpy的生成函数
"""
import numpy as np
lst = [1,2,3] #[1, 2, 3]

#将输入数据转化为一个ndarray
#1.1 np.array(x)
a = np.array(lst)  #[1 2 3]
b = np.array(a)
print(id(a), id(b))#163171744 162972096
print(b is a)      #False
b[0] = 9527 #不会改变a[0]
print(b)    #[9527 2 3]
print(a)    #[1 2 3]

#将输入数据转化为一个类型为type的ndarray
#1.2 np.array(x, dtype) 
ret = np.array(lst, dtype=np.str)   #['1' '2' '3']
ret = np.array(lst, dtype=np.float) #[ 1.  2.  3.]
ret = np.array(lst, dtype=np.bool)  #[ True  True  True]
ret = np.array(lst, dtype=np.complex)#[ 1.+0.j  2.+0.j  3.+0.j]

#1.3 np.asarray(array) #将输入数据转化为一个新的(copy)ndarray
#将输入数据转化为一个类型为type的ndarray
ret = np.asarray(a)   #[1 2 3]
print(id(a), id(ret)) #163171744 163171744
print(ret is a)       #True
ret[0] = 9527 #会同时改变a[0]
print(ret)    #[9527    2    3]
print(a)      #[9527    2    3]

np.ones

#2.1 np.ones(N)
ret = np.ones(3) #[ 1.  1.  1.]

#2.2 np.ones(N,dtype)
ret = np.ones(3, dtype=np.int) #[1 1 1]

#2.3 np.ones_like(ndarray)
molds = np.array([[1,2,3], [4,5,6]])
ret = np.ones_like(molds) #[[1 1 1] [1 1 1]]

np.zeros

#3.1 np.zeros(N)
ret = np.zeros(3) #[ 0.  0.  0.]

#3.2 np.zeros(N, dtype)
ret = np.zeros(3, dtype=np.int) #[0 0 0]

#3.3 np.zeros_like(ndarray)
molds = np.array([[1,2,3], [4,5,6]])
ret = np.zeros_like(molds) #[[0 0 0] [0 0 0]]

np.empty

#4.1 np.empty(N) 
#生成一个N长度的未初始化一维ndarray
ret = np.empty(3) #[  2.12199579e-314   2.12199579e-314   2.12199579e-314]

#4.2 np.empty(N, dtype)
ret = np.empty(3, dtype=np.int)     #[0 0 0]
ret = np.empty(3, dtype=np.float)   #[ 0.  0.  0.]
ret = np.empty(3, dtype=np.bool)    #[False False False]
ret = np.empty(3, dtype=np.complex) #[ 0.+0.j  0.+0.j  0.+0.j]
ret = np.empty(3, dtype=np.ndarray) #[None None None]
ret = np.empty(3, dtype=np.str)     #['' '' '']
ret = np.empty(3, dtype=set)        #[None None None]
ret = np.empty(3, dtype=list)       #[None None None]
ret = np.empty(3, dtype=dict)       #[None None None]
ret = np.empty(3, dtype=tuple)      #[None None None]

#4.3 np.empty_like(ndarray)
molds = np.array([[1,2,3], [4,5,6]])
ret = np.empty_like(molds)#[[1 2 3] [4 5 6]]

np.eye

#创建一个N * N的单位矩阵(对角线为1,其余为0)
#5.1 np.eye(N)
ret = np.eye(3)
'''[[ 1.  0.  0.]
    [ 0.  1.  0.]
    [ 0.  0.  1.]]
'''

#创建一个N * N的单位矩阵(对角线为1,其余为0)
#5.2 np.identity(N) 
ret = np.identity(3)
'''[[ 1.  0.  0.]
    [ 0.  1.  0.]
    [ 0.  0.  1.]]
'''

np.arange

#生成一个从0到N-1步数为1的一维ndarray
#6.1 np.arange(N)                
ret = np.arange(3) #[0 1 2]

#生成一个从begin到end-1步数为1的一维ndarray
#6.2 np.arange(begin, end)
ret = np.arange(0, 3) #[0 1 2]
ret = np.arange(1, 3) #[1 2]
ret = np.arange(2, 3) #[2]
ret = np.arange(3, 3) #[]

#生成一个从begin到end-step的步数为step的一维ndarray
#6.3 np.arange(begin, end, step) 
ret = np.arange(0, 9, 1) #[0 1 2 3 4 5 6 7 8]
ret = np.arange(0, 9, 2) #[0 2 4 6 8]
ret = np.arange(0, 9, 3) #[0 3 6]
ret = np.arange(0, 9, 4) #[0,4,8]
ret = np.arange(0, 9, 5) #[0 5]
ret = np.arange(0, 9, 6) #[0 6]
ret = np.arange(0, 9, 7) #[0 7]
ret = np.arange(0, 9, 8) #[0 8]
ret = np.arange(0, 9, 9) #[0]
ret = np.arange(0, 9, 10)#[0]
ret = np.arange(0, 9, 11)#[0]

np.where

#7 np.where(cond, ndarray1, ndarray2) 
#当符合条件时是x,不符合是y,常用于根据一个数组产生另一个新的数组
#根据条件cond,选取ndarray1或者ndarray2,返回一个新的ndarray
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

ret = np.where(True, a, b) #[1 2 3]
ret = np.where(False, a, b)#[4 5 6]

ret = np.where([True, True, True], a, b)   #[1 2 3]
ret = np.where([False, True, True], a, b)  #[4 2 3]
ret = np.where([False, False, True], a, b) #[4 5 3]
ret = np.where([False, False, False], a, b)#[4 5 6]

ret = np.where([e>=1 for e in a], a, b) #[1 2 3]
ret = np.where([e>=2 for e in a], a, b) #[4 2 3]
ret = np.where([e>=3 for e in a], a, b) #[4 5 3]
ret = np.where([e>=4 for e in a], a, b) #[4 5 6]

np.in1d

#8 np.in1d(ndarray, [x,y,...]) 
#检查ndarray中的元素是否等于[x,y,...]中的一个,返回bool数组
#在序列B中寻找与序列A相同的值,并返回一逻辑值(True,False)或逻辑值构成的向量
tmp = np.array([[1,2,3], [4,5,6]])
ret = np.in1d(tmp, 1)#[ True False False False False False]
ret = np.in1d(tmp, 2)#[False  True False False False False]
ret = np.in1d(tmp, 3)#[False False  True False False False]
ret = np.in1d(tmp, 4)#[False False False  True False False]
ret = np.in1d(tmp, 5)#[False False False False  True False]
ret = np.in1d(tmp, 6)#[False False False False False  True]
ret = np.in1d(tmp, 7)#[False False False False False False]
ret = np.in1d(tmp, 8)#[False False False False False False]

ret = np.in1d(tmp, [1,2])  #[ True  True False False False False]
ret = np.in1d(tmp, [1,2,3])#[ True  True  True False False False]
ret = np.in1d(tmp, [1,5])  #[ True False False False  True False]
ret = np.in1d(tmp, [1,9])  #[ True False False False False False]

(end)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值