[NumPy 学习笔记] - No.1 使用NumPy创建数组

numpy是python中非常有用的一个库,我们可以使用numpy创建大型的高维数组并进行运算。这里记录一下numpy一些常用的方法。如果想仔细研究numpy的强大功能还需要翻阅NumPy API文档

创建数组

import numpy as np
创建标量

我们使用numpy来创建一个简单的数字

# 创建一个float类型的数字
x = np.array(6.0) # 稍后会解释什么叫np.array()
print ("x: ", x)
# Number of dimensions
print ("x ndim: ", x.ndim)
# Dimensions
print ("x shape:", x.shape)
# Size of elements
print ("x size: ", x.size)
# Data type
print ("x dtype: ", x.dtype)

print(x)

结果如下所示:

x: 6.0
x ndim: 0
x shape: ()
x size: 1
x dtype: float64

ndim和shape,size,究竟是什么呢?我们再多看两个例子

创建一维数组和多维数组
# 1-D Array
x = np.array([1 , 2 , 1.7])
print ("x: ", x)
print ("x ndim: ", x.ndim)
print ("x shape:", x.shape)
print ("x size: ", x.size)
print ("x dtype: ", x.dtype) # notice the float datatype

结果如下:

x: [ 1. 2. 1.7]
x ndim: 1
x shape: (3,)
x size: 3
x dtype: float64

再来看三维数组

# 3-D array (matrix)
x = np.array([[[1,2,3], [4,5,6], [7,8,9]]])
print ("x:\n", x)
print ("x ndim: ", x.ndim)
print ("x shape:", x.shape)
print ("x size: ", x.size)
print ("x dtype: ", x.dtype)

结果如下:

x:
[[[1 2 3]
[4 5 6]
[7 8 9]]]
x ndim: 3
x shape: (1, 3, 3)
x size: 9
x dtype: int32

在numpy中,我们使用ndarray这种数据类型来存储数组,使用np.array()来创建ndarray;ndarray由数组数据和描述数据的元数据组成。

扫描二维码关注公众号,回复: 10446961 查看本文章

在这里插入图片描述

ndim: 变量x的维度,如果是数字就是0,如果是1维数组就是1,二维数组就是2,以此类推。

shape:变量x的形状,如果是数字就是(),如果是1维数组就是形如(3,),如果是二维数组就形如(3,4),以此类推 。

size: 变量x所有元素的总数;例如一个3x4的二维数组就是12个元素。

dtype:变量中元素的类型,numpy中有着丰富的数据类型。

其他方法

numpy数组和list可以互相转换:

a = [1,2,3]
# list 转 numpy
x = np.array(a)
# ndarray 转 list
b = x.tolist()

在numpy中还有一些创建数组的方法,例如:

我们可以使用np.arange()创建一个连续的等差数组:

# np.arange([start, ]stop, [step, ]dtype=None)

import numpy as np
nd1 = np.arange(6)#array([0 1 2 3 4 5])
nd2 = np.arange(2,6)#array([2 3 4 5])
nd3 = np.arange(2,10,2) #array([2 4 6 8])

我们通常使用np.arange() 配合reshape()来生成数组

nd4 = np.arange(6).reshape(2,-1)
print(nd4)

nd4:
[[0 1 2]
[3 4 5]]

使用numpy来创建零矩阵,单位矩阵等:

# 特殊矩阵
print ("np.zeros((2,2)):\n", np.zeros((2,2))) #零矩阵
print ("np.ones((2,2)):\n", np.ones((2,2))) #全部是1的矩阵
print ("np.eye((2)):\n", np.eye((2))) #单位矩阵
print ("np.random.random((2,2)):\n", np.random.random((2,2))) #随机矩阵

np.zeros((2,2)):
[[ 0. 0.]
[ 0. 0.]]
np.ones((2,2)):
[[ 1. 1.]
[ 1. 1.]]
np.eye((2)):
[[ 1. 0.]
[ 0. 1.]]
np.random.random((2,2)):
[[ 0.77997581 0.27259261]
[ 0.27646426 0.80187218]]

资料参考:practicalAI

发布了118 篇原创文章 · 获赞 140 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/tjuyanming/article/details/88561878