numpy創(chuàng)建數(shù)組與打印

本篇文章主要是講解numpy的創(chuàng)建與打印輸出,首先導(dǎo)入numpy庫(kù)

import numpy as np

用numpy創(chuàng)建數(shù)組的幾種方式

  1. 使用array函數(shù)從常規(guī)Python列表或元組中創(chuàng)建數(shù)組。得到的數(shù)組的類(lèi)型是從Python列表中元素的類(lèi)型推 導(dǎo)出來(lái)的
# a = np.array(1,2,3,4)  一個(gè)常見(jiàn)的錯(cuò)誤,就是調(diào)用array的時(shí)候傳入多個(gè)數(shù)字參數(shù),而不是提供單個(gè)數(shù)字的列表類(lèi)型作為參數(shù)。
a = np.array([2,3,4])
print("a",a,a.dtype)
b = np.array([1.2, 3.5, 5.1])
print("b",b,b.dtype)
#array 還可以將序列的序列轉(zhuǎn)換成二維數(shù)組,將序列的序列的序列轉(zhuǎn)換成三維數(shù)組,等等。
b = np.array([(1.5,2,3), (4,5,6)])
print("b",b,b.dtype)
#也可以在創(chuàng)建時(shí)顯式指定數(shù)組的類(lèi)型
c = np.array( [ [1,2], [3,4] ], dtype=complex )
print("c",c,c.dtype,c.itemsize)

運(yùn)行結(jié)果如下:
a [2 3 4] int32
b [1.2 3.5 5.1] float64
b [[1.5 2. 3. ]
[4. 5. 6. ]] float64
c [[1.+0.j 2.+0.j]
[3.+0.j 4.+0.j]] complex128 16

  1. 為了創(chuàng)建數(shù)字組成的數(shù)組,NumPy提供了一個(gè)類(lèi)似于range的函數(shù)arange,該函數(shù)返回?cái)?shù)組而不是列表。
a=np.arange( 10, 30, 5 )#包含起始值(默認(rèn)值是0),不包含終止值,最后一個(gè)參數(shù)是步長(zhǎng),默認(rèn)值是1
print(type(a),a)#[10 15 20 25]
a=np.arange( 0, 2, 0.3  )#包含起始值,不包含終止值,最后一個(gè)參數(shù)是步長(zhǎng)
print(type(a),a)#[0.  0.3 0.6 0.9 1.2 1.5 1.8]

運(yùn)行結(jié)果如下:
<class 'numpy.ndarray'> [10 15 20 25]
<class 'numpy.ndarray'> [0. 0.3 0.6 0.9 1.2 1.5 1.8]

3.針對(duì)浮點(diǎn)數(shù),通常最好使用linspace函數(shù)來(lái)明確傳入我們想要的元素?cái)?shù)量

from numpy import pi
import matplotlib.pyplot as plt#約定俗成的寫(xiě)法plt ,Matplotlib程序包后續(xù)會(huì)講到
num=np.linspace( 0, 2, 9 ) # 9 numbers from 0 to 2
print(num.dtype,num)
x = np.linspace( 0, 2*pi, 100 )        # useful to evaluate function at lots of points
f = np.sin(x)
plt.plot(x,f)
plt.show()

運(yùn)行結(jié)果如下:
float64 [0. 0.25 0.5 0.75 1. 1.25 1.5 1.75 2. ]


image.png

4.通常,數(shù)組的元素最初是未知的,但它的大小是已知的,NumPy提供了幾個(gè)函數(shù)來(lái)創(chuàng)建具有初始占位符內(nèi)容的數(shù)組。這就減少了數(shù)組增長(zhǎng)的必要,因?yàn)閿?shù)組增長(zhǎng)的操作花費(fèi)很大

#函數(shù)zeros創(chuàng)建一個(gè)由0組成的數(shù)組,
a=np.arange(15).reshape(3,5)
zero = np.zeros((3,4))
print(zero.dtype,zero)
zeros_like=np.zeros_like(a)#帶like的用參數(shù)a的維度
print(zeros_like.dtype,zeros_like)
#函數(shù) ones創(chuàng)建一個(gè)完整的數(shù)組,
ones = np.ones((3,4))
print(ones.dtype,ones)
#函數(shù)empty 創(chuàng)建一個(gè)數(shù)組,其初始內(nèi)容是隨機(jī)的,取決于內(nèi)存的狀態(tài)。默認(rèn)情況下,創(chuàng)建的數(shù)組的dtype是 float64 類(lèi)型的。
empty = np.empty((3,4))
print(empty.dtype,empty)

運(yùn)行結(jié)果如下:
float64 [[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
int32 [[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]]
float64 [[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
float64 [[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]

數(shù)組的打印

1.打印數(shù)組的各種屬性

a=np.arange(15).reshape(3,5)
#ndarray.ndim - 數(shù)組的軸(維度)的個(gè)數(shù)。在Python世界中,維度的數(shù)量被稱(chēng)為rank
print("數(shù)組的軸(維度)的個(gè)數(shù):",a.ndim)
#ndarray.shape - 數(shù)組的維度。這是一個(gè)整數(shù)的元組,表示每個(gè)維度中數(shù)組的大小
print("數(shù)組的維度:",a.shape)
#ndarray.size - 數(shù)組元素的總數(shù)。這等于 shape 的元素的乘積
print("數(shù)組元素的總個(gè)數(shù):",a.size)
#ndarray.dtype - 一個(gè)描述數(shù)組中元素類(lèi)型的對(duì)象
print("數(shù)組元素的類(lèi)型:",a.dtype)
#ndarray.itemsize - 數(shù)組中每個(gè)元素的字節(jié)大小。
#例如,元素為 float64 類(lèi)型的數(shù)組的 itemsize 為8(=64/8),而 complex32 類(lèi)型的數(shù)組的 itemsize 為4(=32/8)。
#它等于 ndarray.dtype.itemsize
print("數(shù)組中每個(gè)元素的字節(jié)大小:",a.itemsize,a.dtype.itemsize)
#ndarray.data - 該緩沖區(qū)包含數(shù)組的實(shí)際元素。class 'memoryview'
print("該緩沖區(qū)包含數(shù)組的實(shí)際元素:",a.data,type(a.data))

輸出結(jié)果如下:
數(shù)組的軸(維度)的個(gè)數(shù): 2
數(shù)組的維度: (3, 5)
數(shù)組元素的總個(gè)數(shù): 15
數(shù)組元素的類(lèi)型: int32
數(shù)組中每個(gè)元素的字節(jié)大小: 4 4
該緩沖區(qū)包含數(shù)組的實(shí)際元素: <memory at 0x00000091BD96CEA0> <class 'memoryview'>

  1. 打印數(shù)據(jù)
#將一維數(shù)組打印為行,將二維數(shù)據(jù)打印為矩陣,將三維數(shù)據(jù)打印為矩?cái)?shù)組表
c = np.arange(24).reshape(2,3,4) 
print(c)
#如果數(shù)組太大而無(wú)法打印,NumPy會(huì)自動(dòng)跳過(guò)數(shù)組的中心部分并僅打印角點(diǎn)
print(np.arange(10000))
print(np.arange(10000).reshape(100,100))
#要禁用此行為并強(qiáng)制NumPy打印整個(gè)數(shù)組,可以使用更改打印選項(xiàng)set_printoptions。
import sys
# np.set_printoptions(threshold=sys.maxsize)       # sys module should be imported禁用
np.set_printoptions(threshold=1000)       # sys module should be imported 解除禁用
print(np.arange(100).reshape(10,10))

打印結(jié)果如下:
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]

[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
[ 0 1 2 ... 9997 9998 9999]
[[ 0 1 2 ... 97 98 99]
[ 100 101 102 ... 197 198 199]
[ 200 201 202 ... 297 298 299]
...
[9700 9701 9702 ... 9797 9798 9799]
[9800 9801 9802 ... 9897 9898 9899]
[9900 9901 9902 ... 9997 9998 9999]]
[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]

注:本文參考:https://www.numpy.org.cn/user/quickstart.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • NumPy是Python中關(guān)于科學(xué)計(jì)算的一個(gè)類(lèi)庫(kù),在這里簡(jiǎn)單介紹一下。 來(lái)源:https://docs.scipy...
    灰太狼_black閱讀 1,333評(píng)論 0 5
  • 先決條件 在閱讀這個(gè)教程之前,你多少需要知道點(diǎn)python。如果你想從新回憶下,請(qǐng)看看Python Tutoria...
    舒map閱讀 2,744評(píng)論 1 13
  • 一、numpy概述 numpy(Numerical Python)提供了python對(duì)多維數(shù)組對(duì)象的支持:ndar...
    L_steven的貓閱讀 3,612評(píng)論 1 24
  • 前言 numpy是支持 Python語(yǔ)言的數(shù)值計(jì)算擴(kuò)充庫(kù),其擁有強(qiáng)大的高維度數(shù)組處理與矩陣運(yùn)算能力。除此之外,nu...
    開(kāi)發(fā)者也閱讀 3,389評(píng)論 0 35
  • 原文:Quickstart tutorial 譯者:Reverland 來(lái)源:試驗(yàn)性NumPy教程(譯) 2.1 ...
    布客飛龍閱讀 1,497評(píng)論 5 52

友情鏈接更多精彩內(nèi)容