首页 > 其他分享 >1.1 - numpy数组的属性和创建

1.1 - numpy数组的属性和创建

时间:2024-02-18 16:36:31浏览次数:26  
标签:1.1 dtype 元素 print 数组 np numpy

1.1.1 numpy数组

  Numpy(Number Python)是Python进行科学计算的一个扩展库,提供了大量的函数和操作,主要用于对多维数组执行计算。

  Numpy数组中的每个元素都有相同的类型;并且数组大小是不可变的,修改数组大小将会创建新的数组。而python的列表类型list则会动态的扩展长度。

1.1.2 numpy数组的属性

  ndim      维度数
  shape      形状,每个维度的数量组成的元组
  size       数组中元素的个数
  dtype       数组元素的类型

  itemsize     数组元素的大小,以 字节 为单位

  对于数组的 ndim和shape 的形象理解:数组的最左侧,一个括号就代表一个维度,这个括号代表着:括号内可以包含一个或多个子数组,这个括号将这一个或多个子数组括起来就构成了一个维度。

  :当数组(如:[1,2])的维度为1的时候,其shape不能直接写 (2),而是要写成 (2,)!!!要保证这是一个元组

import numpy as np

x = np.array([[1], [2], [3]])
print(x.shape)

y = np.array([ [ [1,2] ] ])
print(y.shape)
print(y.size)
print(y.ndim)

z = np.array([3,2])
print(z.shape)
print(z.ndim)

1.1.3 numpy数组的创建和初始化

   1)array_like 类型的元素进行初始化

   2)调用np的数组初始化方法,如:单位矩阵,零数组,固定元素填充数组等。

   3)根据数值范围创建数组,如:np.linspace(), np.logspace() 

import numpy as np

# 初始化数组的三种方式

# 第一种:通过array_like类型的元素,如 list
l1 = [[1, 2], [3, 4]]
n1 = np.array(l1)
print(type(n1))

# 第二种:通过numpy中方法,设置数组填充元素形成数组,如:零数组,单位数组,空数组
n2 = np.empty([2,3], dtype=float)  # 创建一个指定类型的未初始化的数组
n3 = np.zeros((2,3), dtype=int)
n3_like = np.zeros_like(n2)  # 创建一个与n2形状相同的零数组
n4 = np.ones((2,3), dtype=int)
n4_like = np.ones_like(n3)  # 创建一个与n3形状相同的单位数组
n5 = np.full([2, 3], fill_value=3, dtype=int)
'''
    N:矩阵的行数
    M:矩阵的列数,如果确实,则列数与行数相同
    k:默认为0,表示单位矩阵;为正值表示主对角线相邻的上面一个斜行为1,其余为0;为负值表示主对角线相邻的下面一个斜行为1,其余为0.
dtype:矩阵元素类型
'''
n6 = np.eye(3, 3, k=0, dtype=int)  # 初始化一个单位矩阵:主对角线位置的元素为1,其余位置的元素为0
print(n6)

# 第三种:通过数值范围内的元素,随机生成一维数组,然后 reshape。
n7 = np.arange(0, 11, 2)  # 从 [0, 9),步长为2
n8 = np.linspace(3, 15, num=9, endpoint=True, dtype=int)  # 从 [3, 15],等间隔选取 num 个值
n9 = np.logspace(1, 2, base=10, num=4)  # 从[1, 2],等差选5个值,分别作为base的指数
print(n7.reshape((2, 3)))
print(n8.reshape((3, 3)))
print(n9.reshape((2,2)))

 

  

  

标签:1.1,dtype,元素,print,数组,np,numpy
From: https://www.cnblogs.com/zhangzhenw/p/18013527

相关文章

  • 树状数组
    从这边抄(借鉴)的这是一个完整的二叉树把它变成直角三角形下面用一维数组对应删掉多余的叶子这个就是树状数组......
  • 数据结构【树状数组】
    树状数组是线段树的衍生产物,牺牲了部分通用性,节约了空间,且大大减少了手写码量。借助树状数组,我们可以用O(logN)的时间复杂度来实现给定序列中长度为n的区间中元素和的计算。https://www.bilibili.com/video/BV1ce411u7qP/?spm_id_from=333.337.search-card.all.click&vd_source......
  • 字符串、向量和数组
    一、字符串1.引入库include<string>usingstd::string;2.初始化strings(10,'c');//直接初始化strings1("hello");//直接初始化strings2="hello";//拷贝初始化3.操作(1)s+="world"//左值引用(返回值),避免拷贝(2)st......
  • 2024-02-17-物联网C语言(2-数组)
    2.数组2.1数组的概念​ 数组是若干个相同类型的变量在内存中的有序存储集合。数组存储一组数据数组里面存储的数据类型必须是相同的数字在内存中会开辟一块连续的空间//定义了一个整型的数组a,a是数组的名字,数组中有10个元素,每个元素的类型都是int类型,而且在内存中连续......
  • 树状数组
    树状数组背景由于\(OIer\)们对于数据更高效的储存、修改和查询的需要,一种数据结构树状数组营运而生。介绍树状数组是一个查询和修改时间复杂度都为\(O(log(n))\)的数据结构,主要用于:数组的单点修改和区间查询在使用前缀和求区间和的算法中:如果可以做到在\(O(1)\)......
  • NumPyML 源码解析(四)
    numpy-ml\numpy_ml\neural_nets\utils\__init__.py"""神经网络特定的常见辅助函数。``neural_nets.utils`模块包含神经网络特定的辅助函数,主要用于处理CNNs。"""#从当前目录下的utils模块中导入所有内容from.utilsimport*WrappersThewrappers.pymoduleimple......
  • NumPyML 源码解析(七)
    numpy-ml\numpy_ml\trees\gbdt.py#导入numpy库并重命名为npimportnumpyasnp#从当前目录下的dt模块中导入DecisionTree类#从当前目录下的losses模块中导入MSELoss和CrossEntropyLoss类from.dtimportDecisionTreefrom.lossesimportMSELoss,CrossEn......
  • NumPyML 源码解析(二)
    ActivationFunctionsTheactivationsmoduleimplementsseveralcommonactivationfunctions:Rectifiedlinearunits(ReLU)(Hahnloseretal.,2000)Leakyrectifiedlinearunits(Maas,Hannun,&Ng,2013)Exponentiallinearunits(Clevert,Unterthiner,......
  • NumPyML 源码解析(五)
    numpy-ml\numpy_ml\preprocessing\nlp.py#导入必要的库和模块importreimportheapqimportos.pathasopfromcollectionsimportCounter,OrderedDict,defaultdictimportnumpyasnp#定义英文停用词列表,来源于"GlasgowInformationRetrievalGroup"_STOP_WORDS=......
  • NumPyML 源码解析(六)
    numpy-ml\numpy_ml\tests\test_glm.py#禁用flake8检查#导入numpy库并重命名为npimportnumpyasnp#导入statsmodels库中的api模块并重命名为smimportstatsmodels.apiassm#从numpy_ml.linear_models模块中导入GeneralizedLinearModel类fromnumpy_ml......