データ型変換とndarray

ndarrayデータ型

Ndarray基本データ型「デジタルタイプ名+」という名前のデータ型を使用して、以下に示すようにビット長を表すデジタルデータビットの形態を示しています。コンピュータにビットがケアビット最小データ単位である、長さバイトバイトは8ビット、すなわち1バイト= 8ビットに等しいです。整数バイト長は8を表しINT64、8バイトの倍精度浮動小数点長さとして表さのfloat64。メモリやディスクスペースの要素の同じタイプが同じで占められている、データ型が不当に設定されている場合、大量のデータを処理する際に、メモリやディスクストレージスペースの浪費につながる、と計算効率に影響を与えます。しかし、スターターのため、各種類の長さを心配する必要は、唯一ndarray整数、浮動小数点、文字列、ブール値、オブジェクトの種類を知っておく必要はありません。

Ndarrayデータ型変換

Pythonのリストでndarrayリストでは、データ要素、データ型とndarrayの異なる種類に格納できる最大の違いは、すべての要素が一致している必要がありますが必要です。データが矛盾numpyのすべての要素が自動的に適切なデータタイプに変換されている場合numpyのは自動的に、データndarrayの種類を認識する。

上記の図3 ndarrayオブジェクトを作成して、ARR1は、他の要素がnumpyのARR2う同じデータタイプことを保証するために、浮動小数点の整数の2番目の要素に三つの整数、ARR2 ARR1から成りARR3は同じnumpyのが自動的に他の要素の文字列に変換し、文字列型の第三の要素ARR2、フロートに変換されます。整数 - >フロート - 順序は、それがデータの損失を引き起こす可能性があるため、自動的に変換逆転することができない場合>文字列が自動的に変換することができ、我々はastype()関数で手動でキャストを使用することができます。原則astype()関数は、元の配列に影響を及ぼさないであろうデータ型変換操作は配列のコピーで行われる、第1のメモリに元の配列をコピーすることです。

注意上图中将arr4由浮点型转换成整数型时,每个元素的小数位都被自动截掉,实际应用中可能影响数据质量;只有当所有字符串元素都表示整数型或浮点型时,才能使用astype( )函数将字符转型转换成整数型或浮点型,否则会报ValueError错误;直接把arr6转换成整数型也会报错。

ndarray元素访问

ndarray可以用索引来访问元素,一维数组的索引访问方式与Python的list相同,多维数组只需要在索引中增加位置即可。下图中倒数第2行arr9[2]表示一维数组arr9中的第3个元素“15”,最后一行arr10[1,1]表示二维数组arr10的第2行第2个元素“25”。

同样ndarray可以使用切片访问多个元素。下图中第2行生成了0-9的整数组成的一维数组arr11,第4行进行切片操作,将数组第6-9个元素取出赋值给变量arr_slice;注意:切片是数组的视图,任何对切片的修改都会导致原数组的元素变化,第6行将切片第1个元素的值改为“0”,原数组arr11也随之发生了变化。如果你不想使用视图而只是对数组切片进行复制,需要使用copy( )函数。

切片中使用m:n的形式,表示[m, n)的半开半闭的范围。m,n分别表示切片的开始位置和结束位置,m若省略表示从第一个元素开始,n若省略表示到最后一个元素结束,m,n都省略表示取得该维度所有元素。熟练掌握切片对学习numpy很有必要,请读者参照下图分析切片的原理:

一维数组可以看做是个列表,二维数组可以看成是一个矩阵,可是对于多维数组,不少初学者可能会觉得不容易理解,特别是在进行切片操作时更是如此。下图用10以内的随机自然数填充了一个三维数组arr12,从打印的结果可以观察到,三维数组实际上由2个二维数组组成,arr12[0]表示第1个二维数组,arr12[0, 1]表示第1个二维数组的第2行,arr12[0, 1, 2]表示第1个二维数组第2行的第3个元素。

对多维数组的切片也跟二维数组是类似的,请读者自行分析下列几个表达式的切片结果:

 

おすすめ

転載: www.cnblogs.com/liuys635/p/11201827.html
おすすめ