首页 > 其他分享 >NumPy 从已有的数组创建数组

NumPy 从已有的数组创建数组

时间:2023-08-20 18:31:46浏览次数:34  
标签:numpy asarray 创建 元组 数组 dtype np NumPy

NumPy 从已有的数组创建数组

1、numpy.asarray

numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。

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

a:任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组; dtype:数据类型,可选; order:可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

import numpy as np
a=[1,2,3]
arr1=np.asarray(a)#列表转化为ndarray
print(arr1)
b=(1,2,3,4)
arr2=np.asarray(b)#元组转化为ndarray
print(arr2)
arr3=np.asarray(b,dtype=float)#设置dtype参数
print(arr3)
[1 2 3]
[1 2 3 4]
[1. 2. 3. 4.]

2、numpy.frombuffer

numpy.frombuffer 用于实现动态数组。

numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。

numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)

注意:buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b。

  • buffer:可以是任意对象,会以流的形式读入;
  • dtype:返回数组的数据类型,可选项;
  • count:读取的数据数量,默认为-1,读取所有数据; offset:读取的起始位置,默认为0.
import numpy as np
s=b'hello world'#加上b
arr1=np.frombuffer(s,dtype='S1')
print(arr1)

[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']

3、numpy.fromiter

numpy.fromiter 方法从可迭代对象中建立 ndarray 对象,返回一维数组。

numpy.fromiter(iterable, dtype, count=-1)
import numpy as np 
 
# 使用 range 函数创建列表对象  
list=range(5)
it=iter(list)
 
# 使用迭代器创建 ndarray 
x=np.fromiter(it, dtype=float)
print(x)

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

标签:numpy,asarray,创建,元组,数组,dtype,np,NumPy
From: https://blog.51cto.com/u_16200950/7162967

相关文章

  • 找出最长等值子数组
    给你一个下标从0开始的整数数组nums和一个整数k。如果子数组中所有元素都相等,则认为子数组是一个等值子数组。从nums中删除最多k个元素后,返回可能的最长等值子数组的长度。1.哈希分组+反悔队列蠢逼做法classSolution{public:intlongestEqualSubarray......
  • shell脚本中的函数与数组
    一.函数编写脚本时,有些脚本可以反复使用,可以调用函数来解决语句块定义成函数约等于别名函数使用方法:定义函数再引用函数建立函数,基本格式1.function函数名{ 命令序列}2.函数名(){命令序列}3.functionfunc_name(){...函数体...}1.注意事项直接写......
  • C++ Vector数组优化
    Vector数组优化问题这是一段没有优化的代码:#include<iostream>#include<vector>classEntity{public: intx,y;public: Entity(intx,inty) :x(x),y(y){} Entity(constEntity&e) :x(e.x),y(e.y){ std::cout<<"Copied!"<<st......
  • C++ 创建库并使用
    创建库并使用!>使用VisualStudio2022创建项目和解决方案首先创建一个空项目,这里叫Game,同时VisualStudio会帮你创建解决方案。这个项目是我们的应用程序。创建项目来存库!>以静态库为例、右键解决方案,添加新项目Engine。此时就有了两个项目,Game和Engine:打开E......
  • 软件测试|Linux 基础教程:创建和删除目录
    简介在Linux系统中,创建和删除目录是非常常见的操作。目录是用于组织文件和其他目录的一种结构,它们是组织文件系统的重要组成部分。本文将介绍如何在Linux系统中创建和删除目录。创建目录在Linux中,可以使用mkdir命令来创建一个新的目录。mkdir是MakeDirectory(创建目录)的......
  • 1.8.21二维数组右上左下遍历
    1.题目描述给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。输入输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0<row<100,0<col<100)输......
  • 力扣-4-寻找两个正序数组的中位数
    题目要求O(log(m+n))的时间复杂度知道了两个数组的长度,那么中位数的下标以及如何计算是可以确定的,给出的是两个正序数组,如果使用双指针,从两个数组头开始扫描并比较,找出合并后第K小的数字,时间复杂度是多少?时间复杂度是O((M+N)/2),这个目标还不及题目的要求,看到logN就会想到二分......
  • 使用-Terraform-创建一个新的Azure-资源组-虚拟网络-子网
    本文主要讲解如何使用Terraform-在AzureCloud中创建一个新的资源组然后在这个资源组中,创建一个虚拟网络-192.168.10.0/24,以及8个/27位子网环境说明:一般都是资源与资源组在一个Location位置中,写法也相对简单一些因此本文,使用了,资源组,与虚拟网络资源不在同一个Location位置的......
  • 桌面版vscode用免费的微软4核8G服务器做远程开发(编译运行都在云上,还能自由创建docker
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览在前文《浏览器上写代码,4核8G微软服务器免费用,Codespaces真香》中,咱们以一个Java程序员视角体验了GitHub的Codespaces产品的beta版,简单来说有以下两大收获:网......
  • Linux专栏(二):创建虚拟机与Ubuntu安装
    本文将介绍在VMware中如何创建虚拟机并安装Ubuntu20.04系统1下载Ubuntu20.04镜像下载地址:Ubuntu官网镜像下载2创建虚拟机Step1:打开上文Linux专栏(一)——VMware的下载与安装下载的VMware,点击创建虚拟机,后在弹窗中默认设置点击下一步;Step2:按照如图下选择点击下一步;Step3:......