1、普通创建——np.array()

创建数组最简单的方法就是使用array函数。它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。

 import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float)
print(a2, a2.dtype, a2.shape)

运行结果:

import numpy as np
a1 = np.array([1, 2, 3])
print(a1)
a2 = np.array([[1, 2, 3], [2, 3, 4]], dtype=np.float)
print(a2, a2.dtype, a2.shape)

2、内置方法——np.asarray()  np.fromiter()

  • numpy.asarray # 类似于numpy.array
  • numpy.fromiter # 此函数从任何可迭代对象构建一个ndarray对象,返回一个新的一维数组。

2.1 numpy.asarray

语法:

numpy.asarray(a, dtype = None, order = None)

参数:

参数 描述
a 任意形式的输入参数,比如列表、列表的元组、元组、元组的元组、元组的列表
dtype 输入出的数组类型,可选
order ‘C’为按行的 C 风格数组,’F’为按列的 Fortran 风格数组
 x = [1, 2, 3]  # x是python的列表类型 不是数组
a1 = np.asarray(x)
print(a1) # [1 2 3]
y = (4, 5, 6) # y是python的元组类型
a2 = np.asarray(y, dtype=float, order='F')
print(a2) # [4. 5. 6.]

2.2 numpy.formiter

语法:

numpy.fromiter(iterable, dtype, count = -1)

参数:

参数 描述
iterable 任何可迭代对象
dtype 返回数组的数据类型
count 需要读取的数据数量,默认为-1,读取所有数据

例子:

 import numpy as np
x = range(5)
a = np.fromiter(x, float, 5)
print(a)

结果:

[0. 1. 2. 3. 4.]

3 内置方法——np.arange()创建

语法:
numpy.arange(start, stop, step, dtype)
参数:
start 范围的起始值,默认为0
stop 范围的终止值(不包含)
step 两个值的间隔,默认为1
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。

例子:

import numpy as np
# 普通用法
a1 = np.arange(10)
#含起始点
a2 = np.arange(10, 20)
# 带步长
a3 = np.arange(10, 20, 2)
# 倒着
a4 = np.arange(20, 10, -1)
print(a1, '\n', a2, '\n', a3, '\n', a4)

执行结果:

[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[10 12 14 16 18]
[20 19 18 17 16 15 14 13 12 11]

4、内置方法——等比等差创建

4.1 np.linspace (起始值,终止值,元素总数):创建一维等差数组。

语法:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数说明:

参数 描述
start 序列的起始值
stop 序列的终止值,如果endpointtrue,该值包含于数列中
num 要生成的等步长的样本数量,默认为50
endpoint 该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。
retstep 如果为 True 时,生成的数组中会显示间距,反之不显示。
dtype ndarray 的数据类型

例子:

 import numpy as np
a1 = np.linspace(0, 10, 5)
print("等差数组:", a1)
a2 = np.linspace(0, 10, 5, retstep=True, dtype=np.int8)
print(a2)
结果:
等差数组: [ 0. 2.5 5. 7.5 10. ]
(array([ 0, 2, 5, 7, 10], dtype=int8), 2.5

4.2 np.logspace(起始值,终止值,元素总数):创建一维等比数组。

语法:

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

base 参数意思是取对数的时候 log 的下标。

参数 描述
start 序列的起始值为:base ** start
stop 序列的终止值为:base ** stop。如果endpointtrue,该值包含于数列中
num 要生成的等步长的样本数量,默认为50
endpoint 该值为 ture 时,数列中中包含stop值,反之不包含,默认是True。
base 对数 log 的底数。
dtype ndarray 的数据类型

例子:

 import numpy as np
# 默认底数是 10
a = np.logspace(1.0, 2.0, num=10)
print(a)
# 将对数的底数设为2
a = np.logspace(0, 9, 10, base=2)
print(a)
结果:
[ 10. 12.91549665 16.68100537 21.5443469 27.82559402
35.93813664 46.41588834 59.94842503 77.42636827 100. ]
[ 1. 2. 4. 8. 16. 32. 64. 128. 256. 512.]

5、内置方法创建(特殊构造)

5.1 np.zeros(shape, dtype=float, order='C'):创建一个全0数组,shape要以元组格式传入

import numpy as np
a1 = np.zeros((3, 4), dtype=int)
print(a1)
a2 = np.zeros_like(a1)
print('副本:', a2)
# 结果:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
副本: [[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]

5.2 np.ones(shape, dtype=None, order='C'):创建一个全1数组,shape要以元组格式传入。

 import numpy as np
a1 = np.ones((2, 3), dtype=int)
# 返回具有与给定数组相同的形状和类型的数组
a2 = np.ones_like(a1)
print(a2)

结果:

[[1 1 1]
[1 1 1]]

5.3 np.empty(shape, dtype=None, order='C'):创建一个拥有趋近0值的数组,shape要以元组格式传入。

 import numpy as np
x = np.empty((2, 3), dtype=int, order='C')
print(x)
'''
[[7209029 6422625 6619244]
[ 100 6553673 0]]
'''

5.4 np.eye(N, M=None, k=0, dtype=float, order='C'):创建一个对角矩阵,N代表行,M代表列。其中有个参数k默认值为0,它代表偏移量,正1时向主对角线右上偏移1位,负1时向主对角线左下偏移1位。

 import numpy as np
a1 = np.eye(3, 3, dtype=int)
print(a1)
# 对角线下移
a2 = np.eye(3, 3, k=-1, dtype=int)
print('*************************\n', a2)
# 对角线向上移
a3 = np.eye(3, 3, k=1, dtype=int)
print('*************************\n', a3)

结果:

[[1 0 0]
[0 1 0]
[0 0 1]]
*************************
[[0 0 0]
[1 0 0]
[0 1 0]]
*************************
[[0 1 0]
[0 0 1]
[0 0 0]]

5.5 np.full(shape, fill_value, dtype=None, order='C'):创建一个以fill_value进行填充的数组,fill_value为想要填充的值

import numpy as np
a1 = np.full((3, 3),fill_value=5)
print(a1)
#结果
[[5 5 5]
[5 5 5]
[5 5 5]]

6、从随机函数创建

随机生成数组需要考虑的因素:

  1. 数据范围:区间,整数、小数
  2. 数据分布:均匀分布、正态分布、指定分布
  3. 数据形状:size

常用的随机函数

函数 解释
rand(d0,d1,…) [0,1]均匀分布
randint(low,high,size) [low,high)整数均匀分布
choice(a,size,replace,p) 指定数组指定概率分布
randn(d0,d1,…) 标准正态分布

[0,1]均匀分布

import numpy as np
a1 = np.random.rand(4, 4)
print(a1)
》》》
[[0.77052073 0.68006097 0.07924217 0.81588193]
[0.99678088 0.3900633 0.64834814 0.62874627]
[0.15473904 0.24785919 0.75724866 0.32946373]
[0.99667109 0.12276489 0.26126159 0.36696264]] 0.7705207279750877

[a,b)整数均匀分布

 import numpy as np
a = np.random.randint(2, 5, (3, 3))
print(a)
>>>
[[3 4 2]
[4 2 2]
[2 4 4]]

指定数组指定概率分布

import numpy as np
a = np.random.choice([1, 2, 3, 4], size=(3, 4), replace=True, p=[0.1, 0.2, 0.3, 0.4])
print(a)
>>>
[[2 2 3 1]
[4 4 4 3]
[1 2 1 2]]

N(0,1)标准正态分布

 import numpy as np
a = np.random.randn(4, 4)
print(a)
>>>
[[-1.94776705 1.82906205 0.45956222 -1.09130521]
[ 1.52936905 -2.38259868 -1.53460647 1.95028102]
[ 0.7148325 0.40825257 0.15732141 -0.45423096]
[-0.20530692 1.34386361 1.13883039 -0.14897777]]

4、numpy——创建数组的更多相关文章

  1. Numpy 创建数组2

    Numpy数组除了可以使用底层 ndarray 构造器来创建外,也可以同伙一下集中方式来创建. numpty.empty numpy.empty方法用来创建一个指定形状(shaoe).数据类型(dty ...

  2. Numpy创建数组

    # 导入numpy 并赋予别名 np import numpy as np # 创建数组的常用的几种方式(列表,元组,range,arange,linspace(创建的是等差数组),zeros(全为 ...

  3. Numpy 创建数组

    ndarray 数组除了可以使用底层 ndarray 构造器来创建外, 也可以通过以下几种方式来创建. numpy.empty numpy.empty 方法用来创建一个指定形状(shape),数据类型 ...

  4. 吴裕雄--天生自然Numpy库学习笔记:NumPy 创建数组

    import numpy as np x = np.empty([3,2], dtype = int) print (x) import numpy as np # 默认为浮点数 x = np.zer ...

  5. numpy的学习之路(1)——创建数组以及基本运算

    需要导入的包 import numpy as np import pandas 一.利用numpy创建数组 1.1创建简单数组 array =np.array([[1,2,3], [2,3,4]]) ...

  6. numpy学习之创建数组

    1.使用array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3]) array([1, 2, 3]) ndarray2 = np.arr ...

  7. 『Numpy』内存分析_利用共享内存创建数组

    引.内存探究常用函数 id(),查询对象标识,通常返回的是对象的地址 sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组 ...

  8. NumPy 从数值范围创建数组

    NumPy 从数值范围创建数组 这一章节我们将学习如何从数值范围创建数组. numpy.arange numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下: ...

  9. NumPy 从已有的数组创建数组

    NumPy 从已有的数组创建数组 本章节我们将学习如何从已有的数组创建数组. numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 只有 ...

随机推荐

  1. 【爬虫】Selenium+chrome

    一.下载对应chrome版本的webdriver https://npm.taobao.org/mirrors/chromedriver 二.pom <dependency> <gr ...

  2. CentOS 7 FTP的安装与配置

    CentOS7 FTP安装与配置 1.FTP的安装 #安装yum install -y vsftpd #设置开机启动systemctl enable vsftpd.service #启动systemc ...

  3. CF9D How many trees? (dp)

    这题我想了好久 设 \(f_{i,j}\) 为 \(i\) 结点 \(<=j\) 的方案数 固定根,枚举左右子树,就有: \[f_{i,j}=\sum_{k=0}^{n-1}f_{k,j-1}* ...

  4. 学习旧岛小程序 (5) observer 函数中修改属性的值

    不要在一个属性的 observer  函数中修改属性的值 不然会造成内存泄露 错误代码: properties: { /* 期刊号 */ index: { type: String, observer ...

  5. image按钮新增的width属性和height属性

    代码实例: test.html <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  6. 黑客教父郭盛华:提升家庭WiFi的10个方法

    中国黑客教父,知名网络安全专家郭盛华曾发博文表示:“WiFi是互联网发展过程中最重要的发展之一,虚拟世界没有百分百的安全,所以杀毒软件并不可以抵抗全部的黑客攻击.“ 用户WiFi密码尽量不要使用简单单 ...

  7. 手工实现hashset

    package cn.study.lu.four; import java.util.*; /** * 手工实现hashmap,加深理解底层原理 * @author Administrator * * ...

  8. VUE的双向绑定及局部组件的使用

    vue的双向绑定,使用v-model,v-model只能使用在input  textare    select中 <!DOCTYPE html> <html lang="z ...

  9. BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数

    Description 给下N,M,K.求     Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意 ...

  10. 【Java】commons-lang3中DateUtils类方法介绍

    添加commons-lang3的Maven依赖 <dependency> <groupId>org.apache.commons</groupId> <art ...