numpy安装

本文介绍了如何在Python中安装numpy库,并详细讲解了numpy数组的创建、属性、索引和切片,以及如何使用np.nditer进行迭代。通过实例演示了从一维到二维数组的操作,是学习numpy入门的好帮手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.以管理员的形式打开cmd

2.安装numpy插件

pip install numpy

3.安装成功后,输入pip list 命令查看是否安装成功

pip list

 

3.创建

#使用array创建一维数组
list01 = [1,2,3,4]
np01 = np.array(list01)
print(np01)
print(type(np01))
#使用array创建二维数组
list02 = [[1,2,3,4],[5,6,7,8]]
np02 = np.array(list02)
print(np02)
print(type(np02))
#使用array创建三维数组
list03 = [[[1,2,3,4],[5,6,7,8],[9,10,11,12]]]
np03 = np.array(list03)
print(np03)
print(type(np03))
"""

arange 创建数组

#一维数组
 

a = np.arange(10) #[0 1 2 3 4 5 6 7 8 9]
a = np.arange(2,10) #[2 3 4 5 6 7 8 9]
a = np.arange(1,10,2) #[1 3 5 7 9]
a = np.arange(1,10,2,dtype=float)
print(a)
#二维数组
#切记前面的12,必须满足3*4
np01  = np.arange(12).reshape(3, 4)
print(np01)

用random创建数组

# np.random.random()    生成0到1之间的随机数  
#创建一维数组   size生成几个数据,可直接写4
np01= np.random.random(size=4) #[0.13475357 0.8088961  0.52055803 0.49706622]
#创建二维数组  size=(3,4) 3行4列 可用()和[] ,效果一样
np01= np.random.random((3,4))
#创建三维数组  两个三行四列
np01= np.random.random((2,3,4))
print(np01) 

使用logspace创建数组

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

参数描述
start序列的起始值
stop序列的终止值 ,如果endpoint=True,则证明数组包含于数列
num生成样本数量,默认是50
endpoint如果为ture则包含stop,否则不包含
base对数log的底数,默认10.0
dtype数据类型

练习

创建一个长度为10的一维全为0的ndarry对象,然后让第五个元素等于
创建一个元素为从10到49的narray对象。
创建一个4*4的二维数组,并输出数组元素类型。
创建一个数组,该数组可以完全将坐标位置为(0,1,3)到(3,0,1)的转置。
将4题中的数据类型转换为float64。

数组的属性

属性描述
ndarray.ndim数组的轴(维度)的个数。在Python世界中,维度的数量被称为rank。
ndarray.shape数组的维度。这是一个整数的元组,表示每个维度中数组的大小。对于有n行和m列的矩阵,shape将是(n,m)。因此,shape元组的长度就是rank或维度的个数 ndim。
ndarray.size数组元素的总数。这等于shape的元素的乘积。
ndarray.dtype一个描述数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。例如numpy.int32、numpy.int16和numpy.float64。
ndarray.itemsize数组中每个元素的字节大小。例如,元素为float64类型的数组的itemsize为8(=64/8),而int32类型的数组的itemsize为4(=32/8)。它等于ndarray.dtype.itemsize。
ndarray.T数组转置,及行列调换
ndarray.nbytes整个数组所需的字节数量,可以使用nbytes属性。其值等于数组的size属性值乘以 itemsize属性值。
np01 = np.array([1,2,3,4])
np01 = np.array([[1,2,3,4]])
#print(np01.ndim)
print(np01.shape)
print(np01.size)
print(np01.dtype)
print(np01.itemsize) #一个字节默认是8为  32/8 = 4
print(np01.nbytes)#一个数字字节4,4*4=16

list01 = [
    [1,2],
    [3,4],
    [5,6]
]
np01=np.array(list01)
print(np01)
np02= np01.T
print(np02)

数据的索引和切片

一维数组的索引

list01= [1,2,3,4,5]
np01 = np.array(list01,dtype="int32")
print(np01)
"""
正向递增索引 从0开始
1,  2,  3,  4,  5 数据
0   1   2   3   4 索引
1.左开右闭
2.不写startIndex默认从0开始
"""
print(np01[0]) #1
print(np01[1:4]) #[2 3 4]
print(np01[1:5]) #[2 3 4 5]
print(np01[:5]) #[1 2 3 4 5]
​
"""
反向递减索引 从-1开始
1,  2,  3,  4,  5 数据
-5  -4  -3  -2  -1 索引
1.左开右闭
2.不写startIndex默认从0开始
"""
print(np01[-1]) #5
print(np01[-5:-1]) #[1 2 3 4]
print(np01[-5:]) #[1 2 3 4 5]
​
​

一维数组的切片

语法[start:stop:step]
list01= [1,2,3,4,5]
np01 = np.array(list01,dtype="int32")
print(np01)
#正向索引切片
print(np01[:])#从0到0
print(np01[3:])#从3开始到结尾
print(np01[:5])#从0开始到5结尾
print(np01[1:5:2])#步长是2
​
#反向索引切片
print(np01[::-1])#-1证明是反向获取
print(np01[-5:-2])
​
#正负一起使用
print(np01[-5:4]) #[1 2 3 4]

二维数组的索引

#创建二维数组
list01= [
    [1,2],
    [3,4],
    [5,6],
    [7,8]
]
np01= np.array(list01)
print(np01)
#print(np01.ndim) #查看维数
print(np01[1])#获取第二行
print(np01[1][1])#获取第二行第一列

二维数组的切片



[对行进行切片,对列的切片]
对行的切片:可以有start:stop:step
对列的切片:可以有start:stop:step
#创建二维数组
list01= [
    [1,2],
    [3,4],
    [5,6],
    [7,8]
]
np01= np.array(list01)
print(np01)
print(np01[:,:])#所有行所有列
#所有行部分列
print(np01[:,1])#所有行第二列
print(np01[:,0:2])#所有行的第一列和第二列
​
#部分列所有行
print(np01[1,:])#获取第二行所有列
print(np01[0:2,:])#获取第一和二行所有列
print(np01[::2,:])#获取奇数行所有列
​
#部分行部分列
print(np01[1,1])#第二行第二列
​
#组合使用的时候改怎么办
#获取第三行第二列(6),第四行第一列(7)
#行写成元组放在前面,列写成元组放在后面
a= np01[(2,3),(1,0)]
print(a)
​
#负索引的使用
print(np01[-1])#最后一行
print(np01[::-1])#行倒序
print(np01[::-1,::-1])#行倒序,列倒叙


练习

创建一个二维数组,取第二行第一列和第三行第二列的数据。
获取二维数组中数组的1,2行第2,3列的数据。

数组的迭代

使用np.nditer迭代

最好no,知道常用的即可

op,flags,op_flags,op_dtypes,order={‘C’,‘F’,‘A’}, casting,op_axes, itershape, buffersize,

"""
flags : str的序列,可选。用于控制迭代器行为的标志。
  “buffered”可在需要时启用缓冲。
  “c_index”导致跟踪C顺序索引。
  “f_index”导致跟踪Fortran-order索引。
  “multi_index”导致跟踪多个索引或每个迭代维度一个索引元组。
  
op_flags:tr列表,可选。这是每个操作数的标志列表。至少,必须定“readonly”,“readwrite”或“writeonly”中的一个
  “readonly”表示只读取操作数。
  “readwrite”表示将读取和写入操作数。
  “writeonly”表示只会写入操作数。
  “no_broadcast”阻止操作数被广播。
  “contig”强制操作数数据是连续的。
  
op_dtypes : dtype的dtype 或tuple,可选。操作数所需的数据类型
​
order: {‘C’,‘F’,‘A’,‘K’},
​
casting :{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’},可选。控制进行复制或缓冲时可能出现的数据转换类型。建议不要将此设置为“unsafe”,因为它会对累积产生不利影响。
   “no”表示完全不应强制转换数据类型。
   “equiv”表示只允许更改字节顺序。
   “safe”表示只允许保留值的强制转换。
   “same_kind”意味着只允许安全的类型或类型内的类型,如float64到float32。
   “unsafe”表示可以进行任何数据转换。
   
op_axes : 整数列表列表,可选。如果提供,则是每个操作数的int或None列表。操作数的轴列表是从迭代器的维度到操作数的维度的映射。可以为条目放置值-1,从而将该维度视为“newaxis”。
​
itershape : 整数元组,可选。迭代器的理想形状。这允许“allocate”具有由op_axes映射的维度的操作数不对应于不同操作数的维度,以获得该维度不等于1的值。
​
buffersize : int,可选。启用缓冲时,控制临时缓冲区的大小。设置为0表示默认值
""

"
Anaconda是一个用于科学计算的Python发行版,它包含了许多常用的科学计算库和工具。下面是使用Anaconda的一些基本步骤: 1. 下载和安装Anaconda:首先,你需要从Anaconda官网(https://www.anaconda.com/products/individual)下载适合你操作系统的Anaconda安装包。然后,按照安装向导的指示进行安装。 2. 创建和管理环境:Anaconda允许你创建多个独立的Python环境,每个环境可以有不同的Python版本和安装的库。你可以使用Anaconda Navigator图形界面或者命令行工具conda来创建和管理环境。 - 使用Anaconda Navigator:打开Anaconda Navigator,点击"Environment"选项卡,然后点击"Create"按钮创建一个新环境。在创建环境时,你可以选择Python版本和需要安装的库。 - 使用conda命令行工具:打开命令行终端(Windows下是Anaconda Prompt或者PowerShell,Linux和Mac下是终端),运行以下命令创建一个新环境: ``` conda create --name myenv python=3.8 ``` 这将创建一个名为myenv的环境,并指定Python版本为3.8。你可以根据需要修改环境名称和Python版本。 3. 激活环境:创建环境后,你需要激活它才能使用。在命令行终端中运行以下命令激活环境: ``` conda activate myenv ``` 这将激活名为myenv的环境。你可以根据实际环境名称进行替换。 4. 安装和管理库:在激活的环境中,你可以使用conda命令来安装和管理需要的库。例如,要安装numpy库,可以运行以下命令: ``` conda install numpy ``` 这将在当前环境中安装numpy库。你可以根据需要安装其他库,也可以使用pip命令来安装非conda库。 5. 使用Jupyter Notebook:Anaconda还包含了Jupyter Notebook,它是一个交互式的编程环境,可以用于编写和运行Python代码、展示数据分析结果等。你可以在Anaconda Navigator中启动Jupyter Notebook,或者在命令行终端中运行以下命令启动: ``` jupyter notebook ``` 这将在默认浏览器中打开Jupyter Notebook界面,你可以在其中创建新的Notebook文件,并在其中编写和运行Python代码。 这些是使用Anaconda的基本步骤,希望对你有帮助!如果你有任何进一步的问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_51962956

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值